起因:查出來的列表數(shù)據(jù),通過查詢條件過濾,發(fā)現(xiàn)過濾條件并不起作用
檢查發(fā)現(xiàn):where查詢條件里面有or的過濾條件,用來進行權(quán)限控制,模糊查詢條件本來是起效果的,但是OR的條件一執(zhí)行,就有多了些數(shù)據(jù)
代碼:
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
--下面的查詢條件一添加,就會再多出來一些符合下面查詢條件的數(shù)據(jù)
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 )
期望的結(jié)果:先查出來所有符合要求的,然后再根據(jù)過濾條件去過濾,所以這里做的處理是,再套一層,把這個查詢出來的結(jié)果當成一個臨時表,再select這個臨時表,用過濾條件過濾這個臨時表的數(shù)據(jù)文章來源:http://www.zghlxwxcb.cn/news/detail-815059.html
??????
查詢條件有OR的條件的話,需要注意文章來源地址http://www.zghlxwxcb.cn/news/detail-815059.html
到了這里,關(guān)于MySQL查詢條件OR導致模糊查詢失效的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!