[英]MySQL automatic string to integer casting in where clause?
我對MySQL並不陌生,但是今天巧合的是,我的代碼中發生了一種奇怪的情況,這使我感到驚訝。 有人可以解釋為什么這給我相同的結果嗎?
SELECT * FROM `products` WHERE id = 12
和
SELECT * FROM `products` WHERE id = '12ABC'
在這兩種情況下,選擇相同的記錄都會得到相同的結果。 我希望第二個人不會給我任何回報? 我的ID字段是int(11)無符號的,並且auto_increment標志處於打開狀態。
MySQL必須進行轉換才能在2種不同類型之間進行比較。 它嘗試將字符串設置為int並從頭開始從字符串中獲取數字。
例如你有
'ABC12'
字符串轉換為int的結果將為0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.