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
然而,當我事先知道字段名的用戶才能使用。有沒有辦法搜索任意字段?喜歡的東西:
def search(json_field)
magic!!!
if (json_field==exist)
return json_value
else:
return "not found"
我不希望加載內存中的所有結果,然後使用Python,因爲它不會是有效的搜索。
感謝您的回覆。我不是按價值搜尋。可能有數十個可能匹配的值。我想知道在json對象中是否存在關鍵字,如果是,那麼它的價值是什麼。 – Momi
我認爲在這種情況下'JSON_EXTRACT'完全符合你的要求。例如,請查看此[鏈接](http://rextester.com/WLKH42087)。使用的查詢是'SELECT TRIM(BOTH'''FROM json_extract(mydata,'$。「id''))AS test_field FROM temp1' - 它返回'5'當查詢改爲'SELECT TRIM(BOTH' 「'FROM json_extract(mydata,'$。」id1「'))AS test_field FROM temp1'(一個不存在的鍵),它返回NULL,它可以在Python代碼中再次檢查。你怎麼看? –
它的工作!謝謝! – Momi