SQL搜索下划线,like中不能匹配下划线的问题
使用like语句的错误查询MySQL> select * from t where x like '%_%';返回全部的记录,不是想要的结果! 为什么错误?因为在like语句中的下划线的含义是“任意一个字符”,类似“%”代表匹配任意多个字符的。 4.正确的查询方法能想到的有如下两种方法。1)第一种方法使用escape转义
·
使用like语句的错误查询
MySQL> select * from t where x like '%_%';
返回全部的记录,不是想要的结果!
为什么错误?
因为在like语句中的下划线的含义是“任意一个字符”,类似“%”代表匹配任意多个字符的。
4.正确的查询方法
能想到的有如下两种方法。
1)第一种方法使用escape转义
mysql> select * from t where x like '%\_%' escape '\';
返回包含有"_"的记录,正确
escape的内容可以任意,只要保证前后一致即可。
mysql> select * from t where x like '%|_%' escape '|';
返回包含有"_"的记录,正确
mysql> select * from t where x like '%*_%' escape '*';
返回包含有"_"的记录,正确
2)使用instr函数辅助判断
使用instr函数判断字段中是否包含“_”,如果包含返回值是非零的,如果不包含则返回值是零。
mysql> select * from t where instr(x,'_')!=0;
更多推荐
已为社区贡献2条内容
所有评论(0)