mysql where語句中 or 和 and連用注意點


  在mysql中,經常會遇到這樣的情況,在寫條件語句where時,可能會同時有多個條件的“或”或者“與”,但經常會達不到效果,經百度,本人發現一個where語句中同時出現條件的“與”或者“或的時候”,要將多個OR用小括號括起來再和AND進行“與”,或者將多個AND用小括號括起來再與OR進行“或”。

eg.    select * from table from id=1 or id=2 and price>=10;

這條語句默認執行的是id=2並且price大於等於10的,或者是id=1。

如果加上括號:select * from table from (id=1 or id=2) and price>=10;

則這條語句執行的是id=1或id=2,並且price大於等於10。

 

 

and與or優先級

在where中可以包含任意數目的and和or操作符,在沒有任何其他符號的時候,例如括號,SQL會首先執行and條件,然后才執行or語句,如:

select * from table from id=1 or id=2 and price>=10; /* http://www.manongjc.com/article/1439.html */

這條語句默認執行的是id=2並且price大於等於10的,或者是id=1。

如果加上括號:

select * from table from (id=1 or id=2) and price>=10;

則這條語句執行的是id=1或id=2,並且price大於等於10。


免責聲明!

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



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