mysql搜索匹配单一字符_mysql 查询中如何使用正则查询匹配特定字符?

表中一个字段存储了json格式的数据,如 tasks 字段,每个人的任务是一个数组,也就是转换成 json 后的 {}:

[{"create_time":"2019-08-27 16:24:51","finish_time":"2019-08-29 12:51:47","task_result":"AGREE","task_status":"COMPLETED","taskid":"62047012545","userid":"0637661208752994"},{"create_time":"2019-08-27 16:24:43","task_result":"NONE","task_status":"CANCELED","taskid":"62053477946","userid":"V00_1400815737560"}]

现在想通过 regexp 匹配到指定用户的记录,比如我想查找其中是否存在(用户V00_1400815737560已同意):"task_result":"AGREE" 和 "userid":"V00_1400815737560" 的记录。

需要注意的是以上两个条件必须属于一个用户,也就是在一个 {} 中。

请问可以使用 mysql 的 regexp 进行这样的查找吗?

==========================================================

目前查询 sql,有一个缺点是可能会匹配到两个 {} 里,也就是第一个 {} 匹配到了 "task_status":"RUNNING",第二个 {} 匹配到了 "userid":"%%s":

select * from t_xx where tasks regexp '"task_status":"RUNNING".+"userid":"%%s"';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值