天天看點

mysql err 1054_[Err] 1054 Mysql問題分析及解決方法

SQL 1: SELECT * from table1 WHERE courier_phone =132aaaaaaaa

SQL 2: SELECT * from table1 WHERE courier_phone ='132aaaaaaa'

courier_phone 在資料庫中為 varchar類型;

SQL 1 報出錯誤 1054

可是執行SQL 3, SQL4 都沒有問題。SQL 3: SELECT * from table1 WHERE courier_phone =13212345678

SQL 4: SELECT * from table1 WHERE courier_phone ='13212345678'

内心很是困惑,為什麼加上 引号就能成功?

13212345678與132aaaaaaa 不都是轉換成字元串了,怎麼就一個不成功?

答: 13212345678 ,132aaaaaaa 不加引号都會預設為數值類型,當SQL執行前, mysql庫會先加載解析SQL,13212345678 成功解析成為數值類型,但是132aaaaaaa 不能解析成為數值類型(是以就報1054的錯誤)。