73

MySQL テーブルにdataという名前の JSON 列があり、この列が単一のarrayであるとします。したがって、たとえば、データには次のものが含まれる場合があります。

[1,2,3,4,5]

ここで、配列要素の 1 つが 2 より大きいデータ列を持つすべての行を選択したいと考えています。これは可能ですか?

私は次のことを試しましたが、配列の値に関係なく、常に真のようです:

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

10 に答える 10

3

考えられる方法は、文字列の一致として問題を処理することです。JSON を文字列に変換して照合します。

または、JSON_CONTAINSを使用できます。

于 2016-03-27T17:04:38.123 に答える