sql模糊查询语句详细明白

在sql中要贯彻模糊查询大家假使用到like就能够实现了,中间再带一些参数如% ?
等,上边来看个实例。LIKE 操作符LIKE 操作符用于在 WHERE
子句中搜索列中的钦赐形式。

%代表私行八个字符 _表示二个字符 在
MySQL中,SQL的方式缺省是忽略大小写的
正则形式选用REGEXP和NOT REGEXP操作符。
“.”匹配任何单个的字符。一个字符类
“[…]”相配在方括号内的随机单个字符
“ * ”相称零个或八个在它后边的事物
正则表明式是分别朗朗上口写的,但是要是您愿意,你能运用三个字符类相配三种写法。譬如,“[aA]”相称小写或大写的“a”而“[a-zA-Z]”相配二种写法的其余字母。
在情势初阶处接纳“^”或在方式的末段用“$”。
为了搜索以“三”初始的名字,使用“^”相称名字的起先。
FROM [user] WHERE u_name REGEXP ‘^三’;
将会把u_name为 “三脚猫”等等以“三”开头的记录全寻找来。
为了寻觅以“三”结尾的名字,使用“$”相称名字的最终。
FROM [user] WHERE u_name REGEXP ‘三$’;
将会把u_name为“张三”,“张猫三”等等以“三”结尾的笔录全找寻来。
你也足以运用“{n}”“重复n次”操作符重写先前的查询:
FROM [user] WHERE u_name REGEXP ‘b{2}$’;

SQL LIKE 操作符语法

MySql的like语句中的通配符:百分号、下划线和escape

SELECT column_name(s)FROM table_nameWHERE column_name LIKE

1 CREATE TABLE employee (emp_no INTEGER NOT NULL,2 emp_fname
CHAR(20) NOT NULL,3 emp_lname CHAR(20) NOT NULL,4 dept_no CHAR(4)
NULL)5 GO1 insert into employee values(1, ‘Matthew’, ‘Smith’, ‘d3’)2
insert into employee values(2, ‘Ann’, ‘Jones’, ‘d3’)3 insert into
employee values(3, ‘John’, ‘Barrimore’,’d1′)4 insert into employee
values(4, ‘James’, ‘James’, ‘d2’)5 insert into employee values(5,
‘Elsa’, ‘Bertoni’, ‘d2’)6 insert into employee values(6, ‘Elke’,
‘Hansel’, ‘d2’)7 insert into employee values(7, ‘Sybill’, ‘Moser’,
‘d1’)8 GO

SELECT * FROM employee WHERE emp_fname NOT LIKE ‘%n’4 GOemp_no
emp_fname emp_lname dept_no———– ——————–
——————– ——- 1 Matthew Smith d3 4 James James d2 5
Elsa Bertoni d2 6 Elke Hansel d2 7 Sybill Moser d1

%:表示恣意个或多个字符。可相称任意类型和长度的字符。
Sql代码
select * from user where username like ‘%huxiao’;

实例二

select * from user where username like ‘huxiao%’;

2 SELECT *3 FROM Employee4 WHERE Name LIKE %[k-l]%5 GOID name
salary start_date city region———– ———- ———–
———————– ———- —— 3 Celia 24020 1996-12-03
00:00:00.000 Toronto W 4 Linda 40620 1997-11-04 00:00:00.000 New York
N 7 Alison 90620 2000-08-07 00:00:00.000 New York W

select from user where username like ‘%huxiao%’;
除此以外,假使急需寻觅u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT
FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE
‘%猫%’
若使用 SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%’
即便如此能寻觅出“三脚猫”,但不可能寻觅出切合条件的“张猫三”。

关于like %%

_:表示大肆单个字符。相称单个率性字符,它常用来界定表达式的字符长度语句:(能够表示一个国语字符)

# %意味着私下多个字符

Sql代码
select * from user where username like ‘_’;

select * from user where username like ‘%huxiao’;

select * from user where username like ‘huxiao%’;

select * from user where username like ‘%huxiao%’;

select * from user where username like ‘huxia_’;

# %表示一个字符

select * from user where username like ‘h_xiao’;

select * from user where username like ‘_’;

select * from user where username like ‘______’;

select * from user where username like ‘huxia_’;

select * from user where username like ‘h_xiao’;

若果自己就真正要查%或然_,咋办吧?使用escape,转义字符前边的%或_就不作为通配符了,注意前方未有转义字符的%和_依旧起通配符功能
Sql代码
select username from gguser where username like ‘%xiao/%’ escape ‘/’;

#
假若本身就着实要查%大概_,怎么做呢?使用escape,转义字符前面包车型客车%或_就不作为通配符了,注意眼下未有转义字符的%和_一直以来起通配符作用

select username from gg_澳门普京娱乐场,user where username like ‘%xiao/%%’ escape ‘/’;

发表评论

电子邮件地址不会被公开。 必填项已用*标注