mysql 代替and_MYSQL OR与AND同时出现的用法

表中数据

722fe25482214ab6852bbed73726f79a.png

MySQL中or和and的用法

SELECT * from student WHERE id = 1 or id = 2 AND age = 20;

-- 查询结果是id = 2且age = 20或者id=1

907411c32bbbd3abd45e9452d5e73109.png

SELECT * from student WHERE (id = 1 or id = 2 ) AND age = 20;

-- 查询结果是 id=1或id=2 且age = 20

f6812a3c9e56b9609bd4857474f988ce.png

问题记录:要求查出 INVOICE_TITLE like ‘12%’或者CLIENT_NAME LIKE ‘%12%’的数据,结果前台一直报请求超时,发现数据多了将近20倍,SQL如下:

SELECT

*

FROM

ewin_should_receive sr,

ewin_client_snap cs

WHERE

sr.client_snap_id = cs.id

AND sr.b_enable = '1'

AND cs.INVOICE_TITLE LIKE '%12%'

OR cs.CLIENT_NAME LIKE '%12%'

正确SQL:

SELECT

*

FROM

ewin_should_receive sr,

ewin_client_snap cs

WHERE

sr.client_snap_id = cs.id

AND sr.b_enable = '1'

AND (

cs.INVOICE_TITLE LIKE '%12%'

OR cs.CLIENT_NAME LIKE '%12%'

)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部