问题描述:
1、表结构:
2、只要包含3这种类型的都不能查询。
解决方式:
1、模糊查询出所有包含3这种类型的数据,在使用not in这种方式:
SELECT * FROM system_account WHERE id NOT IN (SELECT id FROM system_account WHERE identity_type LIKE "%3%");
这种方式如果类型中有13、23这种带3的类型就需要修改模糊条件。
2、使用正则匹配方式:
SELECT * FROM `system_account` WHERE identity_type REGEXP "^([1,2,4,5,6,7,8,9]{1}\,?)*[1,2,4,5,6,7,8,9]{1}$";
这种方式只要在这种中排除3这种类型就可以了,但是没添加一种类型就需要修改一次sql语句。
同事问的这个问题,第一反应是模糊查询取反,所以感觉很有意思就记录一下。
最终这种方案也没有用上,同事把需求弄反了。
模糊查询可以使用 not like 这种查询方式 平时从来没有用过也没看见过 所以没想到这种方法
SELECT * FROM admin_produce_order WHERE product_code LIKE 'CP211%' AND po_come_factory NOT LIKE "%罗西%"