在模糊查询中,需要要掌握两个特殊的符号,一个是 %,一个是 _
% 表示任意多个字符, _ 代表1个字符
案例
1.找出名字中含有o的人员信息
select ename from emp where ename like '%o%';
查询结果:
+-------+
| ename |
+-------+
| JONES |
| SCOTT |
| FORD |
+-------+
3 rows in set (0.00 sec)
2.找出名字中第二个字母是A的人员信息
select ename from emp where ename like '_A%';
查询结果:
+--------+
| ename |
+--------+
| WARD |
| MARTIN |
| JAMES |
+--------+
3 rows in set (0.00 sec)
3.找出名字的最后字母是t的
select ename from emp where ename like '%t';
+-------+
| ename |
+-------+
| SCOTT | # oracle数据库当中有一个用户scott,密码是tiger
+-------+
1 row in set (0.00 sec)
4.找出名字中有下划线的
准备:
我们现在新建一张表t_user,
create table t_user(id int, name varchar(255));
插入三条数据:
insert into t_user(id,name) values(1,'zhangsan');
insert into t_user(id,name) values(2,'lisi');
insert into t_user(id,name) values(3,'wang_wu');
查看当前表中的数据:
select * from t_user;
+------+---------+
| id | name |
+------+---------+
| 1 | zhansan |
| 2 | lisi |
| 3 | wang_wu |
+------+---------+
3 rows in set (0.00 sec)
查询名字带下划线的:
如果按照上面的知识,我们在写这个查询语句时:
select name from t_user where name like '%_%';
但是这种写法是不正确的,因为_表示单个字符,%_% 会把所有的信息查询出来。
这个时候就需要用转义字符\了,因此正确写法为:
select name from t_user where name like '%\_%';
+------+---------+
| id | name |
+------+---------+
| 3 | wang_wu |
+------+---------+
1 row in set (0.00 sec)