今天在弄sql中發現一個問題,先上圖,
如我們所見字符串'card'=0是相等的,為什么呢?如果是時間開發中的sql代碼沒有任何問題,查詢處理的數據也是會有問題的,這個是很嚴重的事故!
在經歷了百度查詢MySQL中字符串與數字比較的坑 - 活在夢裡 - 博客園 (cnblogs.com)這篇文的解決了我的疑惑,以此來保留一下自己所犯的錯誤。
總的來說在比較的時候,String是可能會被轉為數字的。
而對於‘card’部分不能截取出數字的字符串來說,轉換的結果自然就是0了。
解決方案為:對數字部分進行轉義CONCAT(0,'')
總結:盡量避免字符串與數字的直接比較