SQL搜索下划线,like中不能匹配下划线的问题
2017-02-16 12:02
609 查看
使用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;
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;
相关文章推荐
- SQL搜索下划线,like中不能匹配下划线的问题
- SQL搜索下划线,like中不能匹配下划线的问题
- 使用模糊查询Like时中文匹配下划线通配符无效的问题
- SQL查询用Like搜索条件中的模式匹配
- SQL查询用Like搜索条件中的模式匹配
- 数据库原理课本中模糊匹配 like 下划线匹配多字符问题
- sql server中like无法匹配下划线问题解决方案
- 解决like中无法匹配下划线的问题
- sql 字符带下划线匹配问题
- 解决like中无法匹配下划线的问题
- sql查询模糊匹配Like的没数据一个问题
- WPF中如何解决3d模型与贴图不能完全匹配的问题
- 解决sybase存储过程中不能取得动态sql输出参数的问题
- 关于字符串的匹配搜索问题
- WPF中如何解决3d模型与贴图不能完全匹配的问题
- WPF中如何解决3d模型与贴图不能完全匹配的问题
- WPF中如何解决3d模型与贴图不能完全匹配的问题
- WPF中如何解决3d模型与贴图不能完全匹配的问题
- 解决sql 2000不能安装的问题。
- SQL使用LIKE匹配