sql模糊查询语句详解

原创
2016-06-07 17:48:18 1920浏览

在sql中要实现模糊查询我们只要用到like就可以实现了,中间再带一些参数如% ? 等,下面来看个实例。
LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SQL LIKE 操作符语法

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> GO
1> 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> GO
emp_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

实例二

2> SELECT *
3> FROM Employee
4> WHERE Name LIKE "%[k-l]%"
5> GO
ID 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

关于like %%

# %代表任意多个字符

* 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 '_';

select * from user where username like '______';

select * from user where username like 'huxia_';

select * from user where username like 'h_xiao';


# 如果我就真的要查%或者_,怎么办呢?使用escape,转义字符后面的%或_就不作为通配符了,注意前面没有转义字符的%和_仍然起通配符作用

select username from gg_user where username like '%xiao/_%' escape '//m.sbmmt.com/m/';
select username from gg_user where username like '%xiao/%%' escape '//m.sbmmt.com/m/';

关于通配符

'A_Z': 所有以 'A' 起头,另一个任何值的字原,且以 'Z' 为结尾的字串。 'ABZ' 和 'A2Z' 都符合这一个模式,而 'AKKZ' 并不符合 (因为在 A 和 Z 之间有两个字原,而不是一个字原)。
'ABC%': 所有以 'ABC' 起头的字串。举例来说,'ABCD' 和 'ABCABC' 都符合这个套式。
'%XYZ': 所有以 'XYZ' 结尾的字串。举例来说,'WXYZ' 和 'ZZXYZ' 都符合这个套式。
'%AN%': 所有含有 'AN' 这个套式的字串。举例来说, 'LOS ANGELES' 和 'SAN FRANCISCO' 都符合这个套式。

在 SQL 中,可使用以下通配符:

通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符

[^charlist]

或者

[!charlist]

不在字符列中的任何单

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。