即使條件不滿足,MySQL查詢也會返回一條記錄。MySql Select查詢返回記錄,當WHERE條件不成立時
SELECT * FROM `orders` WHERE order_id = '10000R'
沒有與此處給出的WHERE條件相匹配的記錄。 但MySQl返回order_id = 10000的記錄
看起來像忽略引號內的alpha的WHERE條件。 如果查詢中有任何錯誤或者這是一個MySql錯誤,請幫助我
即使條件不滿足,MySQL查詢也會返回一條記錄。MySql Select查詢返回記錄,當WHERE條件不成立時
SELECT * FROM `orders` WHERE order_id = '10000R'
沒有與此處給出的WHERE條件相匹配的記錄。 但MySQl返回order_id = 10000的記錄
看起來像忽略引號內的alpha的WHERE條件。 如果查詢中有任何錯誤或者這是一個MySql錯誤,請幫助我
order_id可能是某種類型的整數字段。 MySQL會將字符串'1000R'轉換爲整數1000.這就是爲什麼你會得到結果。這不是一個錯誤。
我假設order_id
爲int
,而MySQL是隱式鑄造VARCHAR '10000R'
以匹配列,它剝離後'r'
的數據類型。
請參閱MySql文檔中的「Type Conversion in Expression Evaluation」。
確保您的order_id字段不是整數或其他數字字段。如果是,它可能會忽略尾隨alpha。
MySQL表數據類型是VARCHAR。 請更改您的數據類型。
...這些是你得到的最快速度相同的三個答案。 :) – trpt4him