ホームページ  >  記事  >  データベース  >  mysql5.6 以前のバージョンでデータベース内の json 詳細をクエリする方法

mysql5.6 以前のバージョンでデータベース内の json 詳細をクエリする方法

黄舟
黄舟オリジナル
2017-03-17 13:35:411495ブラウズ

MySQL にデータを保存するとき、場合によっては、乱雑であまり使用されないデータが json フィールドにスローされることがあります。それでは、データベース内の JSON をクエリする方法と、JSON を保存するときに mysql が注意すべき形式は何でしょうか?次に、この記事を通じて詳細を説明します。MySQL にデータを保存するときに、時々、乱雑で使用頻度の低いデータが json フィールドにスローされることがあります。 mysql は json を保存するときに注意する必要があります。 バー:

1: 変換後、クエリを最後に追加するのではなく、中国語で保存することに注意してください。どちらが便利ですか!

json_encode(array(),JSON_UNESCAPED_UNICODE);
利点: クエリ時に中国語の文字の方がクエリと一致しやすくなります 2: フィールドの統合 保存するときに、フィールド名の設定を開始するのが最善です。 1 人で大規模なプロジェクトを開発することは不可能です。不必要なニーズが多かった トラブルと現場の意見の相違によりバグが発生した (とにかく、これで私は損失を被ったが、全員を率いてプロジェクトを実行するようになったとき、ラッシュのせいでその後のテストの修正に時間がかかるとは予想していなかった)開発)

メリット: クエリデータの削減 コード処理量の削減、プロジェクトページの表示バグの削減

3:

1次元配列を保存できる

2次元配列を決して保存しない

理由: 2次元配列は制御できないため、これはそれはニーズによって決まります個人的な習慣 とにかく、これは私の習慣です、ハハハ、不満を感じたら私を殴ってください! 本題に取り掛かりましょう: もちろん、クエリでは like を使用します

たとえば、content フィールドを持つテーブルがあり、今度は 123456789 の actid を調べる必要があります

5.7:select * from table where content->'$.actid' like '%123456789%';
5.6:select * from table where content like '%"actid":"123456789"%'

これはすぐに理解できるはずですそれは教育ですか?それは完全なセットでなければなりません。個人的な健康管理は同じではないので、コード内の何人かがそれを使用する方法を言いました

$id="123456789";
$sql="select * from table where content like '%\"actid":\""$id"\"%\'";

以上がmysql5.6 以前のバージョンでデータベース内の json 詳細をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。