mysql中的where子句中的過(guò)濾語(yǔ)句執(zhí)行順序
問(wèn)題描述
當(dāng)在where子句中出現(xiàn)了2個(gè)以上的判斷語(yǔ)句的時(shí)候,語(yǔ)句的執(zhí)行順序是什么樣的?如下面這段代碼。
select * from users where username=’admin’ or 1=1 and password=’Dumb’;idusernamepassword1Dumb2Dumb8adminadmin
結(jié)果既返回了用戶名是admin的結(jié)果,又返回了password為Dunb的結(jié)果。那么在where子句中,username=’admin’、1=1、password=’Dumb’是如何進(jìn)行組合,執(zhí)行順序又是什么樣的呢?
問(wèn)題解答
回答1:優(yōu)先級(jí)別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’);
等價(jià)
所以最后的結(jié)果等價(jià)于select * from users where username=’admin’ or password=’Dumb’;
相關(guān)文章:
1. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問(wèn)題。2. javascript - Ajax加載Json時(shí),移動(dòng)端頁(yè)面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?3. mysql - 記得以前在哪里看過(guò)一個(gè)估算時(shí)間的網(wǎng)站4. python運(yùn)行后沒(méi)有任何反饋要怎么排查5. javascript - h5 video層級(jí)太高導(dǎo)致浮在div上面,如何解決?6. mysql刪除一個(gè)空數(shù)據(jù)庫(kù)報(bào)錯(cuò)Table storage engine for ’proc’ doe7. 更新mysql中被別人鎖定的行, 能不能快速失敗直接報(bào)錯(cuò), 而不是一直等待8. python小白 想做一個(gè)能夠計(jì)算圓周率的代碼,不知道怎么寫(xiě)9. javascript - 如何獲取未來(lái)元素的父元素在頁(yè)面中所有相同元素中是第幾個(gè)?10. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?
