sql中字符串與數字的比較坑


今天在弄sql中發現一個問題,先上圖,

 

 如我們所見字符串'card'=0是相等的,為什么呢?如果是時間開發中的sql代碼沒有任何問題,查詢處理的數據也是會有問題的,這個是很嚴重的事故!

 

在經歷了百度查詢MySQL中字符串與數字比較的坑 - 活在夢裡 - 博客園 (cnblogs.com)這篇文的解決了我的疑惑,以此來保留一下自己所犯的錯誤。

總的來說在比較的時候,String是可能會被轉為數字的。

而對於‘card’部分不能截取出數字的字符串來說,轉換的結果自然就是0了。

解決方案為:對數字部分進行轉義CONCAT(0,'')

 

 

 

總結:盡量避免字符串與數字的直接比較


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM