Ownsight

?找回密码
?立即注册
搜索
热搜: 活动 交友 discuz
查看: 818|回复: 0
打印 上一主题 下一主题

SQLite Like

[复制链接]

803

主题

903

帖子

3201

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3201
跳转到指定楼层
楼主
发表于 2015-6-1 21:23:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转自:http://www.w3cschool.cc/sqlite/sqlite-like-clause.html
SQLite 的 LIKE 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。这里有两个通配符与 LIKE 运算符一起使用:
百分号 (%)
下划线 (_)
百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。
语法
% 和 _ 的基本语法如下:
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'
您可以使用 AND 或 OR 运算符来结合 N 个数量的条件。在这里,XXXX 可以是任何数字或字符串值。
实例
下面一些实例演示了 带有 '%' 和 '_' 运算符的 LIKE 子句不同的地方:
语句? ? ? ? 描述
WHERE SALARY LIKE '200%'? ? ? ? 查找以 200 开头的任意值
WHERE SALARY LIKE '%200%'? ? ? ? 查找任意位置包含 200 的任意值
WHERE SALARY LIKE '_00%'? ? ? ? 查找第二位和第三位为 00 的任意值
WHERE SALARY LIKE '2_%_%'? ? ? ? 查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY LIKE '%2'? ? ? ? 查找以 2 结尾的任意值
WHERE SALARY LIKE '_2%3'? ? ? ? 查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY LIKE '2___3'? ? ? ? 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值
让我们举一个实际的例子,假设 COMPANY 表有以下记录:
ID? ?? ?? ? NAME? ?? ???AGE? ?? ?? ?ADDRESS? ???SALARY
----------??----------??----------??----------??----------
1? ?? ?? ???Paul? ?? ???32? ?? ?? ? California??20000.0
2? ?? ?? ???Allen? ?? ? 25? ?? ?? ? Texas? ?? ? 15000.0
3? ?? ?? ???Teddy? ?? ? 23? ?? ?? ? Norway? ?? ?20000.0
4? ?? ?? ???Mark? ?? ???25? ?? ?? ? Rich-Mond? ?65000.0
5? ?? ?? ???David? ?? ? 27? ?? ?? ? Texas? ?? ? 85000.0
6? ?? ?? ???Kim? ?? ?? ?22? ?? ?? ? South-Hall??45000.0
7? ?? ?? ???James? ?? ? 24? ?? ?? ? Houston? ???10000.0
下面是一个实例,它显示 COMPANY 表中 AGE 以 2 开头的所有记录:
sqlite> SELECT * FROM COMPANY WHERE AGE??LIKE '2%';
这将产生以下结果:
ID? ?? ?? ? NAME? ?? ???AGE? ?? ?? ?ADDRESS? ???SALARY
----------??----------??----------??----------??----------
2? ?? ?? ???Allen? ?? ? 25? ?? ?? ? Texas? ?? ? 15000.0
3? ?? ?? ???Teddy? ?? ? 23? ?? ?? ? Norway? ?? ?20000.0
4? ?? ?? ???Mark? ?? ???25? ?? ?? ? Rich-Mond? ?65000.0
5? ?? ?? ???David? ?? ? 27? ?? ?? ? Texas? ?? ? 85000.0
6? ?? ?? ???Kim? ?? ?? ?22? ?? ?? ? South-Hall??45000.0
7? ?? ?? ???James? ?? ? 24? ?? ?? ? Houston? ???10000.0
下面是一个实例,它显示 COMPANY 表中 ADDRESS 文本里包含一个连字符(-)的所有记录:
sqlite> SELECT * FROM COMPANY WHERE ADDRESS??LIKE '%-%';
这将产生以下结果:
ID? ?? ?? ? NAME? ?? ???AGE? ?? ?? ?ADDRESS? ???SALARY
----------??----------??----------??----------??----------
4? ?? ?? ???Mark? ?? ???25? ?? ?? ? Rich-Mond? ?65000.0
6? ?? ?? ???Kim? ?? ?? ?22? ?? ?? ? South-Hall??45000.0

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表