mysql支持json串模糊查询

一场景:在IM即时通讯服务中,实现了用户之间的聊天功能。其中有一张聊天记录库表设计如下,在content的字段中保存了用户之间的聊天信息记录。

content中的数据可能为纯文本、或多种格式的json串数据(前端需要解析展示):

​​mysql支持json串模糊查询_第1张图片

mysql支持json串模糊查询_第2张图片​​​​​​​

二需求:模糊匹配用户的聊天内容,实现只匹配用户输入的文字、推送信息中的页面显示出的信息。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串类型数据处理的函数。

你可能感兴趣的:(java,mysql)