SQL查询A字段不包含B字段

在实际业务中,数据库A字段保存了一份字符串,同时将A中字符串的固定内容单独另存了B字段。
测试发现bug引发B字段跟A字段字符串对应内容不匹配的情况,导致统计跟显示的钱不一样。
需要找到错误数据。即寻找B字段不包含A字段的内容

SELECT * FROM tb1 WHERE a NOT LIKE CONCAT('%', b, '%');
idstate_education_course_idcontent
1000020100{“10000”:“安防监控运维服务”,“10001”:1,“10002”:159620,“10003”:159620,“10006”:“定制”,“10007”:“承担学校四校区安防监控系统的运行和保障”,“10022”:“定制”,“stateEducationCourseId”:2010}
1000120101{“10000”:“安防监控运维服务”,“10001”:1,“10002”:159620,“10003”:159620,“10006”:“定制”,“10007”:“承担学校四校区安防监控系统的运行和保障”,“10022”:“定制”,“stateEducationCourseId”:20101}
10002{“10000”:“安防监控运维服务”,“10001”:1,“10002”:159620,“10003”:159620,“10006”:“定制”,“10007”:“承担学校四校区安防监控系统的运行和保障”,“10022”:“定制”}

测试数据如上表,观察发现,state_education_course_id字段,在content里面又保存了一份键值对,其中id10000的数据,state_education_course_id为20100,在content中stateEducationCourseId保存为2010,这是异常数据也是目标数据,SQL写法应该为

SELECT * FROM TABLENAME
 WHERE content NOT LIKE CONCAT('%',state_education_course_id,'%')
 AND content LIKE '%stateEducationCourseId%'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值