sql模糊查询语句详解

php中文网
发布: 2016-06-07 17:48:18
原创
2621人浏览过

在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 '/';
select username from gg_user where username like '%xiao/%%' escape '/';

关于通配符

'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]

不在字符列中的任何单

 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号