MySQL WHERE 條件下僅剩字段,為何仍能返回數據?

MySQL WHERE 條件下僅剩字段,為何仍能返回數據?

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
喜歡就支持一下吧
點贊6 分享