MYSQL OR與AND同時出現的用法


表中數據

MySQL中or和and的用法

SELECT * from student WHERE id = 1 or id = 2 AND age = 20;
-- 查詢結果是id = 2且age = 20或者id=1

 

SELECT * from student WHERE (id = 1 or id = 2 ) AND age = 20;
-- 查詢結果是 id=1或id=2 且age = 20

 

問題記錄:要求查出 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%'
)

 

 

原文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM