MYSQL 模糊查询 LIKE
2017-01-05 00:00
295 查看
"_"是代表一个模糊字符,
"%"是代表零~多个字符
如果不加这两个符号,那么like 和=就是一样的
1.包含 where name like ‘%明%’
2.以固定字符串开头结尾
where name like ‘李%’ 开头
where name like ‘%李’ 结尾
3.含有数字的
where name like ‘%[0-9]%’
4.不含有数字
where name like ‘%[!0-9]%’
5.含有小写字母的 where name like ‘%[a-z]%’
引申:模糊查询带下划线 “_”的字符
方法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函数辅助判断
select * from t where instr(x,'_') !=0;
(备注:使用instr函数判断字段中是否包含“_”,如果包含返回值是非零的,如果不包含则返回值是零。)
"%"是代表零~多个字符
如果不加这两个符号,那么like 和=就是一样的
1.包含 where name like ‘%明%’
2.以固定字符串开头结尾
where name like ‘李%’ 开头
where name like ‘%李’ 结尾
3.含有数字的
where name like ‘%[0-9]%’
4.不含有数字
where name like ‘%[!0-9]%’
5.含有小写字母的 where name like ‘%[a-z]%’
引申:模糊查询带下划线 “_”的字符
方法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函数辅助判断
select * from t where instr(x,'_') !=0;
(备注:使用instr函数判断字段中是否包含“_”,如果包含返回值是非零的,如果不包含则返回值是零。)
相关文章推荐
- Thinkphp框架基础之使用sql语句
- 模糊查询like的写法问题
- mybatis中怎么使用like形成动态模糊查询,错误使用CONCAT拼接sql的看过来
- MySQL
- mysql使用递归,根据pId,循环查询所有子类
- mysql 的一些条件查询语句
- mysql 日常学习
- ubuntu 下一些简单的mysql命令
- MySql基础的增删改 ddl语句
- windows安装mysql5.7.16
- Mac 安装mysql遇到的坑
- MaxScale:实现MySQL读写分离与负载均衡的中间件利器
- Mysql 对数字的格式化
- MySQL中表与表之间进行复制
- MySQL数据库导出与导入及常见错误解决(转)
- MySQL BTree索引和hash索引的区别
- mysql 自定义函数
- MySQL管理之道——学习笔记
- MySQL WorkBench
- 学生信息管理系统(unix下用c对mysql进行操作)