mysql中where后跟字段條件的疑惑
MySQL中,select from where 查詢語句,即使where后的條件僅剩一個字段,也能返回數據,但僅限于數字開頭的結果。這不禁讓人好奇,在這種情況下,MySQL到底是基于什么條件進行過濾的。
根據MySQL文檔,where后的條件是一個表達式,如果對于每條待選行,表達式的值為真,則該行會被選擇。換句話說,where后的字段僅當其可以轉換為true時,才會成為有效條件。
在示例中,uuid是一個唯一標識符字段,它可以轉換為true。因此,MySQL將where后的uuid視為一個表達式的值,對其進行求值,并返回滿足uuid可以轉換為true的記錄。
值得注意的是,這種方法與oracle不同。在Oracle中,如果where后的條件僅剩一個字段,它會自動報錯。而MySQL則允許這種表達式的使用,并返回滿足條件的數據。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END