學習mysql查詢時,遇到=,like判斷char,varchar時使用錯誤,在此總結
dbq,實驗做的有點錯,直接總結
“=”適用於完全相等
like使用於模糊匹配
無論char還是varchar
模糊匹配的時候,要注意是否需要%
例:
‘%p’:查找末尾是否有p
‘p%’:查找頭是否有p
‘%p%’:查找是否含有字串p(所有位置)
生成測試數據表格
數據表格
Tchar | Tvarchar |
---|---|
qwe | asd |
zxc | cvb |
rty | dfg |
123 | 456 |
判斷符號:=,判斷字符類型:char
完全相等,匹配到
不完全相等,未匹配到
判斷符號:=,判斷字符類型:varchar
完全相等,匹配到
不完全相等,未匹配到
判斷符號:like,判斷字符類型:char
完全相等,未匹配到
不完全相等,未匹配到
判斷符號:like,判斷字符類型:varchar
完全相等,匹配到
不完全相等
後有%
修改s爲d則匹配到
前有%
修改s爲a則匹配到
前後均有%則匹配到
ps:出現兩個結果的原因,%對應的字符數可以爲0,所以匹配到dfg
綜上:
‘=’僅適用完全相等的char和varchar類型字符,無模糊匹配
‘like’一般適用於varchar的模糊匹配(配合char無法使用),且模糊匹配的時候需要配合%使用,%處爲省略的字符,可以未0