学习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