1. 程式人生 > >mysql查詢語句and,or

mysql查詢語句and,or

where查詢裡,常用到and,or
and

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
        WHERE condition1   AND  condition2.....

or

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
        [WHERE condition1  [OR] condition2.....

and 和 or
兩者一起用的時候,and的優先順序大於or
eg:查詢2018年11月5日到2018年11月11月之間,國家為中國或者美國的資訊
解決方法:將最小邏輯用括號括起來

//錯誤使用
SELECT * FROM table_name WHERE created_at > '2018-11-05 00:00:00' AND created_at < '2018-11-12 00:00:00'  AND country = '中國' OR country = '美國' //查詢出4000條資訊,錯誤

//正確使用
SELECT * FROM table)_name WHERE (created_at > '2018-11-05 00:00:00' AND created_at < '2018-11-12 00:00:00')  AND (country = '中國' OR country = '美國') //查詢出1400條資訊,正確