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"}