ホームページ >データベース >mysql チュートリアル >MySQL で JSON 配列内の要素を効率的に検索するにはどうすればよいですか?

MySQL で JSON 配列内の要素を効率的に検索するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-29 11:59:09301ブラウズ

How to Efficiently Search for Elements within JSON Arrays in MySQL?

MySQL での JSON 配列の検索

配列を含む「data」という名前の JSON カラムを持つ MySQL テーブルがあるとします。配列要素の 1 つが 2 より大きい行をすべて取得したいとします。

クエリ

SELECT * from my_table
WHERE JSON_EXTRACT(data, '$[*]') > 2;

は、配列の値に関係なく常に true と評価されるため、間違った結果を返します。 .

配列内の整数を検索するには:

JSON_CONTAINS('[1,2,3,4,5]','7','$')  # Returns: 0
JSON_CONTAINS('[1,2,3,4,5]','1','$')  # Returns: 1

整数を検索するには配列内の文字列:

JSON_CONTAINS('["a","2","c","4","x"]','"x"','$')  # Returns: 1
JSON_CONTAINS('["1","2","3","4","5"]','"7"','$')  # Returns: 0

シナリオでは、次のクエリを使用します:

SELECT * from my_table
WHERE JSON_CONTAINS(data, '2', '$');

このクエリは、"data" 列に より大きい要素を持つ配列が含まれるすべての行を選択します。 2.

以上がMySQL で JSON 配列内の要素を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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