我在MySQL資料庫中有一個json型別的欄位。該欄位包含的值是
{}。
"city_eq": "NewYork",
"rent_true": false,
" estate_type_eq": 0
}
通過傳入的哈希值搜索記錄的正確方法是什么?像這樣:
Link.where(json_fields: {
"city_eq"。"NewYork",
"rent_true": false,
" estate_type_eq": 0.
})
只有當所有的值都相同并在欄位中呈現時,查詢才會回傳一條記錄。哈希鍵的順序可能有所不同。
uj5u.com熱心網友回復:
下面是一個SQL搜索的演示,它與你展示的JSON資料相匹配:
mysql> create table mytable (json_fields json) 。
查詢成功,0 rows受到影響(0.05秒
mysql> insert into mytable values ('{
'> "city_eq": "NewYork",
'> "rent_true": false,
'>" estate_type_eq": 0 "state_type_eq".
'> }')。)
查詢成功,1 row受到影響(0.02秒)。
mysql> select * from mytable where json_contains(json_fields。
json_object('city_eq'/span>, 'NewYork', 'rent_true', false, ' estate_type_eq', 0)。)
-----------------------------------------------------------------
|json_fields |
-----------------------------------------------------------------
| {"city_eq": "NewYork", "rent_true": false, "state_type_eq": 0}。|
-----------------------------------------------------------------
然而,以這種方式搜索JSON必然會引起表的掃描。如果你想以優化的方式進行搜索,我建議你不要將資料存盤在JSON中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332001.html
標籤:
