私の質問は、mysql の JSON データ型を検索するときに、json 配列の内容を検索することです。
DB構造
したがって、mysql テーブルに 2 つの行があり、json フィールドがfoo
.
最初の行には次のものがあります。
{
"items": [
{"type": "bar"}
]
}
2 行目は次のとおりです。
{
"items": [
{"type": "baz"}
]
}
機能するもの
走れる
select `foo`->"$.items[0].type" from `jsontest`
2 つの結果を返す:bar
およびbaz
走れる
select `id` from `jsontest` where `foo`->"$.items[0].type" = "bar"
1 つの結果を返すには: 1
- すなわち。最初の行の ID。
私の問題
mysql のドキュメント[*]
には、「JSON 配列内のすべての要素の値を評価する」ために使用できると記載されています。
ただし、次のクエリはゼロ項目を返します。
select `id` from `jsontest` where `foo`->"$.items[*].type" = "bar"
クエリの何が問題になっていますか?