MySQL查询条件OR导致模糊查询失效

起因:查出来的列表数据,通过查询条件过滤,发现过滤条件并不起作用

检查发现:where查询条件里面有or的过滤条件,用来进行权限控制,模糊查询条件本来是起效果的,但是OR的条件一执行,就有多了些数据

代码:

sql 复制代码
SELECT
 item_apply_id,
 ....
FROM
 loan_item_apply 
WHERE
 item_apply_title LIKE '%临海%' 
 AND ( createBy =10000131273521 
				OR item_apply_a =10000131273521 
				OR item_apply_b =10000131273521 
				OR createBy = 0 
				OR createBy IS NULL 
				OR createBy IN ( SELECT UNDERUSERID FROM sys_user_under WHERE USERID =10000131273521) ) 
 AND doc_status != 1 
--下面的查询条件一添加,就会再多出来一些符合下面查询条件的数据
 OR EXISTS ( SELECT 1 FROM bl_project_approval bpa 
						 WHERE bpa.check_person LIKE CONCAT( '%',10000131273521, '%' ) 
						 AND bpa.project_approval_id = loan_item_apply.project_approval_id ) 

期望的结果:先查出来所有符合要求的,然后再根据过滤条件去过滤,所以这里做的处理是,再套一层,把这个查询出来的结果当成一个临时表,再select这个临时表,用过滤条件过滤这个临时表的数据

⚠️⚠️⚠️

查询条件有OR的条件的话,需要注意

相关推荐
iuvtsrt几秒前
SQL如何优化子查询的性能_改写为JOIN关联查询与消除嵌套
jvm·数据库·python
2403_883261091 分钟前
C#怎么使用并发集合 C#ConcurrentDictionary和ConcurrentQueue线程安全集合怎么用【进阶】
jvm·数据库·python
m0_470857642 分钟前
如何加固SQL系统架构_采用读写分离降低攻击影响
jvm·数据库·python
2401_884454152 分钟前
Golang如何写博客系统后端_Golang博客系统教程【技巧】
jvm·数据库·python
2301_779622413 分钟前
JavaScript中利用Range对象实现复杂的文本选择操作
jvm·数据库·python
m0_741481784 分钟前
Go语言怎么做接口签名_Go语言API签名验证教程【精通】
jvm·数据库·python
2401_884454154 分钟前
CSS实现浮动图标与文本居中对齐_配合浮动与flex
jvm·数据库·python
woxihuan1234565 分钟前
SQL统计分组内的所有数据唯一值_使用DISTINCT汇总
jvm·数据库·python
m0_631529827 分钟前
CSS如何利用-disabled伪类禁用交互元素_通过灰度效果提升界面逻辑清晰度
jvm·数据库·python
XS0301067 分钟前
从浏览器到互联网的完整数据流
前端·数据库·servlet·交互