今天寫mysql的時候發現了乙個問題,在查詢的時候不小心把int型別的id加上引號查詢了,但是也能查詢出來,
select * from `account` where aid='1';
於是查詢了很多資料,最後得出的結論是,mysql會自動轉換:當你型別為int 但傳入的值為varchar 他會把前幾個'數字挑出來'
轉換為int 型別來進行查詢
如果你的 aid = 1 你查詢語句是select * from 表名 where aid='1dasd';
在編譯的時候,編譯器會把 1 挑出來進行轉換,在進行查詢,
如果你的 aid = 1 你查詢語句是select * from 表名 where aid='dasd';
第乙個不為數字,所以無法轉換,查詢出來的結果就為空(不會報錯),
如果你的 aid = 1 你查詢語句是select * from 表名 where aid='123da';
在編譯的時候,編譯器會把 123 挑出來進行轉換,在進行查詢,但查詢結果為空(找不到這個對應的id);
如果你的 aid = 1 你查詢語句是select * from 表名 where aid='da1sd';
查詢結果為空,因為編譯期是從第乙個開始檢視是否為數字,如果不是不會往後查;
mysql 單引號 Mysql單引號使用
工作中經常需要批處理資料,select 字串連線生成sql from tab 而對字串的字段,值2邊通常需要單引號,在select concat 字串1,字串2.時,給字串加單引號,目前知道的有如下方法 基於select test 給test2邊新增單引號 select test 用反斜槓轉義 se...
mysql單引號 mysql單引號和雙引號
表名,列名最好用 esc下面那個,不用 會出錯 這就要從雙引號和單引號的作用講起 雙引號裡面的字段會經過編譯器解釋然後再當作html 輸出,但是單引號裡面的不需要解釋,直接輸出。例如 abc i love u echo abc 結果是 i love u echo abc 結果是 abc echo a...
mysql中反單引號 單引號 雙引號的區別
反引號,一般在esc鍵的下方。它是為了區分mysql的保留字與普通字元而引入的符號。舉個例子 select select from test where select 字段值 在test表中,有個select欄位,如果不用反引號,mysql將把select視為保留字而導致出錯,所以,有mysql保留...