1

MySQL の json フィールドに対するクエリには、理解しにくい問題があります。列のdata型は json です。

次のクエリは問題なく動作します

SELECT * FROM `someTable` WHERE data->'$.someData' in ('A')

ただし、次のものは何も返しません。

 SELECT * FROM `someTable` WHERE data->'$.someData' in ('A','B')

おかしなことに、これも機能します。

 SELECT * FROM `someTable` WHERE data->'$.someData'='A' OR data->'$.someData'='B'

なぜこれが起こるのか、私にはわかりません。私は当初、json クエリ形式で実行されたWHERE x INが && のようなことをしている可能性があると考えていましたが、値が ('A','A') であっても、本質的にWHERE x INに複数の値があることを示すものは何も返しません。動作しません。

SAMPLE DATA (実際にはどれでも構いません)

id | data (json)
1  | {"someData":"A"}
2  | {"someData":"B"}
4

2 に答える 2