SQL中varchar類型在where中注意事項(xiàng)

事情是這樣的,今天在寫sql的時候,table中有一個字段是platform,本來的意思是:0安卓,1蘋果。
但是由于是測試環(huán)境,我在仿造數(shù)據(jù)的時候?qū)⒁恍?shù)據(jù)的platform寫成了IOS。

//sql
select * from table where platform=1

這時報了個沒有這個字段的錯誤。改成如下sql后沒有異常:

//sql
select * from table where `platform`=1
  • 總結(jié):

mysql雖然為我們提供了一些便利,比如可自動將條件中的數(shù)字轉(zhuǎn)換成字符串,或?qū)⒆址D(zhuǎn)換成數(shù)字,但這種隱性的轉(zhuǎn)換卻給系統(tǒng)的擴(kuò)展和維護(hù)埋下了隱患,尤其是一些手工維護(hù)的代碼表,本來沒有什么特別的規(guī)則,就是一個編號,無法預(yù)期存儲的內(nèi)容。所以對于number的字段用大于,小于或者等于的判斷不會有問題,因?yàn)閿?shù)據(jù)庫里有約束,肯定是數(shù)字,但對于varchar類型的字段用就有問題了,所以雖然有些時間sql語句可以執(zhí)行,但規(guī)范的編寫方式可以使程序更健壯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容