1. 程式人生 > >Mysql 中 JSON_CONTAINS、JSON_ARRAY 的使用

Mysql 中 JSON_CONTAINS、JSON_ARRAY 的使用

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