Mysql 中 JSON_CONTAINS、JSON_ARRAY 的使用
阿新 • • 發佈:2018-11-10
JSON_CONTAINS(json_doc, val[, path]) // 判斷是否包含某個json值
JSON_ARRAY([val[, val] ...]) 建立json陣列
1、用科大訊飛語音識別到的已經中文分詞的文字,例:“我”“想”“銷”“存單”
2、根據上面語音識別出來的多個關鍵字,在資料表中查找出包含上述四個關鍵字中任意若干個資料。
表中資料大概這樣:
要從此表中匹配到包含上述四個關鍵字中的任意若干個,可這樣:
SELECT * FROM nlu_define_table WHERE JSON_CONTAINS(JSON_ARRAY("我","想","銷","存單"),keywords->'$.keywords') ORDER BY weights DESC;
即可搜尋到資料
另附上部分sql,以防之後忘記
SELECT * FROM nlu_define_table; SELECT * FROM nlu_define_table WHERE keywords LIKE "%銷%"; SELECT * FROM nlu_define_table WHERE JSON_EXTRACT(keywords,'$.keywords') LIKE "%銷%"; SELECT* FROM nlu_define_table WHERE keywords -> '$.keywords' LIKE "%銷%";
其中第三條sql和第四條sql是等效的(但是如果是數字的話 就不行了 ,例如 裡面有 1,11 這樣的 , 匹配結果就不是正確的了)。。。
轉自:https://blog.csdn.net/qq_35952946/article/details/79131488