1
私はMySql + Pythonを使用しています。私はjsonフィールドを持つMySqlテーブルを持っています。ユーザは任意の数のフィールドをjsonオブジェクトに格納できます。例えば任意フィールドのJson検索
:クエリ後
{id:12, name:"a", age: 23}
OR
{id:5, distance: 23, distance_unit: "mile"}
は素晴らしい作品:私は事前にフィールド名を知っているとき
SELECT JSON_EXTRACT(name, "$.id") as name
FROM table
WHERE JSON_EXTRACT(name, "$.id") > 3
しかし、それだけで動作します。任意のフィールドを検索する方法はありますか?次のようなものがあります。
すべての結果をメモリにロードし、効率的でないためにPythonを使用して検索しません。
ご返信ありがとうございます。私は価値によって検索していません。数多くの値が一致する可能性があります。私はキーがjsonオブジェクトに存在するかどうかを知りたいのですが、それが何であれ、その値は何ですか。 – Momi
その場合、JSON_EXTRACTはあなたが望むものとまったく同じだと思います。たとえば、この[link](http://rextester.com/WLKH42087)をご覧ください。クエリが 'SELECT TRIM(BOTH') 'に変更されたとき、' SELECT TRIM(BOTH '' '' FROM json_extract(mydata、 '$。 "id"'))AS test_field FROM temp1' - "'FROM json_extract(mydata、' $。" id1 "'))AS test_field FROM temp1'(存在しないキー)は、' NULL'を返します。これはPythonコードで再度チェックできます。どう思いますか? –
それは働いた!ありがとう! – Momi