Mysql查詢條件加引號與不加引號的區別

2021-08-09 18:11:24 字數 434 閱讀 2020

好了,說了那麼多,讓我們來看今天遇到的問題:

寫sql查詢該手機號的使用者(看了表字段,`loginname` varchar(255),建表的真是個奇人),查詢中發現了乙個問題,不寫引號的話,直接寫數字是可以查詢出該行的,但是加上引號後便查不出,效果如下圖:

幾番google之後,發現時mysql對於不同資料型別的條件會進行隱式轉化(隱式就是你看不到,mysql自己按照規則將值轉化後,再去匹配),不加引號的話,會將loginname作為int型別進行匹配,所以字串『15920147610_disabled』精度上會有損失,如php的float型別的精度損失一樣。

具體有一些內容網上都有,官網也有介紹,我就不一一寫出來了,可以看看幾篇文章:

:)

mysql查詢時加不加引號的問題

一 如果字段本身是int型別,如果查詢條件中加了引號,比如select from user where id 4 這時候可以查出id 4的使用者資訊,但是使用select from user where id 4abc 同樣可以查出這條資訊。網上說是mysql進行了隱式處理,後面的字元變成了0和前面...

關於sql加反引號與不加反引號的理解

在mysql中的sql語句中常常為了避免與系統衝突而給表名加上反引號 但如果再想要指定其他資料庫時則不能加,否則會被認作是表,舉例如下 當前在edu資料庫中查詢bbs庫的thread表和reply表 query this db query select c.cc.from bbs.thread as...

grep 後加單引號 雙引號和不加引號的區別

單引號 可以說是所見即所得 即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。單引號 是全引用,被單引號括起的內容不管是常量還是變數者不會發生替換。雙引號 把雙引號內的內容輸出出來 如果內容中有命令 變數等,會先把變數 命令解析出結果,然後在輸出最終內容來。雙引號 是部分引用...