mysql支援json串模糊查詢

2021-10-25 12:40:37 字數 696 閱讀 4465

一場景:在im即時通訊服務中,實現了使用者之間的聊天功能。其中有一張聊天記錄庫表設計如下,在content的字段中儲存了使用者之間的聊天資訊記錄。

content中的資料可能為純文字、或多種格式的json串資料(前端需要解析展示):

二需求:模糊匹配使用者的聊天內容,實現只匹配使用者輸入的文字、推送資訊中的頁面顯示出的資訊。json串中不在介面中展示的一些字段例如:「id」、「oneid」屬性值不參與模糊匹配。

#查詢聊天記錄 簡單實現 json串非關鍵字段不進行匹配

select

chat_message.content

from

chat_message

where

( chat_message.message_type = 6 and json_extract(json_remove( chat_message.content,'$.id','$.oneid'), '$.*' ) like concat( "%", '使用者輸入的模糊匹配的值', "%" ) )

三總結:mysql已經提供給我們進行json串型別資料處理的函式。

ES模糊查詢來對應mysql的like查詢

建立乙個測試索引 put test like1 name englishname msg 插入一條測試資料 put test like1 doc 1 前提是查詢的字段型別是string型別,對應es中的text,keyword 這種查詢方式會慢,查詢不進行分詞處理 get test like1 se...

mysql中json取,查,改,去雙引號

id title attr1李白 取值 json extract json欄位,key值 取學校 select json extract attr,xuexiao xuexiao from table where id 1 結果 xuexiao 某某二中 去掉雙引號 json unquote 取教師...

mysql操作 json 陣列 的增刪該查

前言,型別必須是json,雖然text也可以,但是很多操作沒法使用,比如查詢,當然了,這種型別還可以儲存陣列 類似 varchar,設定 json 主要將字段的 type 是 json,不能設定長度,可以是 null 但不能有預設值。就是插入 json 格式的字串,可以是物件的形式,也可以是陣列的形...