文章詳情頁
mysql中的where子句中的過濾語句執行順序
瀏覽:88日期:2022-06-20 08:22:04
問題描述
當在where子句中出現了2個以上的判斷語句的時候,語句的執行順序是什么樣的?如下面這段代碼。
select * from users where username=’admin’ or 1=1 and password=’Dumb’;idusernamepassword1Dumb2Dumb8adminadmin
結果既返回了用戶名是admin的結果,又返回了password為Dunb的結果。那么在where子句中,username=’admin’、1=1、password=’Dumb’是如何進行組合,執行順序又是什么樣的呢?
問題解答
回答1:優先級別AND > OR
http://dev.mysql.com/doc/refman/5.7/en/operator-precedence.html
select * from users where username=’admin’ or (1=1 and password=’Dumb’);
等價
所以最后的結果等價于select * from users where username=’admin’ or password=’Dumb’;
上一條:ubuntu - 遠程連接MySQL,Can’t connect to mysql server on x.x.x.x(10038)下一條:mysql - 如何用數據庫中某時間字段的 ’時分秒’ 減去 早上九點(09:00:00) 得到分鐘數
相關文章:
1. 我的html頁面一提交,網頁便顯示出了我的php代碼,求問是什么原因?2. java 排序的問題3. tp6表單令牌4. angular.js - Angular路由和express路由的組合使用問題5. docker 17.03 怎么配置 registry mirror ?6. node.js - node 客戶端socket一直報錯Error: read ECONNRESET,用php的socket沒問題哈。。7. 網絡傳輸協議 - 以下三種下載方式有什么不同?如何用python模擬下載器下載?8. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?9. 數據庫 - 使用讀寫分離后, MySQL主從復制延遲會導致讀不到數據嗎?10. django - 后臺返回的json數據經過Base64加密,獲取時用python如何解密~!
排行榜
