1. MYsql如何进行sql like (sql查询结果)的查询
select *
from table1
where
`text` like CONCAT( '%' , (select name from table2 where id =3), '%' );
这样看看, 行么?
CONCAT 是 mysql 中函数, 用于连接字符串的。
CREATE TABLE table1 (
`text` varchar(10)
);
CREATE TABLE table2 (
id int,
name varchar(10)
);
INSERT INTO table1 VALUES ('我爱家');
INSERT INTO table2 VALUES (3, '爱');
select *
from table1
where
`text` like CONCAT('%', (select name from table2 where id =3), '%' );
+--------+
| text |
+--------+
| 我爱家 |
+--------+
1 row in set (0.00 sec)
2. sql语句中like的用法详细解析
在SQL结构化查询语言中,LIKE语句有着至关重要的作用。
LIKE语句的语法格式是:select
*
from
表名
where
字段名
like
对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:
select
*
from
table1
where
name
like
"张*"
如果要查询以“张”结尾的记录,则语句如下:
select
*
from
table1
where
name
like
"*张"
这里用到了通配符“*”,可以说,like语句是和通配符分不开的。下面我们就详细介绍一下通配符。
匹配类型
模式
举例及代表值
说明
多个字符
*
c*c代表cc,cBc,cbc,cabdfec等
它同于DOS命令中的通配符,代表多个字符。
多个字符
%
%c%代表agdcagd等
这种方法在很多程序中要用到,主要是查询包含子串的。
特殊字符
[*]
a[*]a代表a*a
代替*
单字符
?
b?b代表brb,bFb等
同于DOS命令中的?通配符,代表单个字符
单数字
#
k#k代表k1k,k8k,k0k
大致同上,不同的是代只能代表单个数字。
字符范围
-
[a-z]代表a到z的26个字母中任意一个
指定一个范围中任意一个
续上
排除
[!字符]
[!a-z]代表9,0,%,*等
它只代表单个字符
数字排除
[!数字]
[!0-9]代表A,b,C,d等
同上
组合类型
字符[范围类型]字符
cc[!a-d]#代表ccF#等
可以和其它几种方式组合使用
假设表table1中有以下记录:
name
sex
张小明
男
李明天
男
李a天女
王5五男
王清五
男
下面我们来举例说明一下:
例1,查询name字段中包含有“明”字的。
select
*
from
table1
where
name
like
'%明%'
例2,查询name字段中以“李”字开头。
select
*
from
table1
where
name
like
'李*'
例3,查询name字段中含有数字的。
select
*
from
table1
where
name
like
'%[0-9]%'
例4,查询name字段中含有小写字母的。
select
*
from
table1
where
name
like
'%[a-z]%'
例5,查询name字段中不含有数字的。
select
*
from
table1
where
name
like
'%[!0-9]%'
以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。
很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?
先看看下面的例子能分别出现什么结果:
select
*
from
table1
where
name
like
*明*
select
*
from
table1
where
name
like
%明%
大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,
所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。
3. sql的like语句怎么用
IKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SQL LIKE 语法
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
4. SQL中like的用法
LIKE是另一个在WHERE子句中会用到的指令。基本上,LIKE能让我们依据一个套(pattern) 来找出我们要的资料。相对来说,在运用IN的时候,我们完全地知道我们需要的条件;在运用BETWEEN的时候,我们则是列出一个范围。LIKE的语法如下:
5. SQL语句like子句中的转义符(解决like搜索%搜索到全部内容)
SQL LIKE里查询有下划线'_'或是'%'等值的记录,直接写成like 'XXX_XX',则会把'_'当成是like的通配符。
例如搜索 select * from user_all_tables where table_name like '%%%' 会将表中所有数据检索出来
Android SQL中暂时发现''%''为通配符
SQL里提供了 escape子句来处理这种情况,escape可以指定like中使用的转义符是什么,而在转义符后的字符将被当成原始字符,这和C里的'\'很像,但是escape要求自定义一个转义符,而不是指定了'\’字符。如:
select * from user_all_tables where table_name like 'YW__%' escape '_'
含义是查出当前用户表下所有以'YW_'开头的表,其中第一个'_'是转义符,第二个是被转义的字符,等效可以写成:
select * from user_all_tables where table_name like 'YW\_%' escape '\'
这里 如果直接搜索通配符例如设置 escape '_' 直接搜索 _ SQL语句为: select * from user_all_tables where table_name like '%_%' 这时会将 含%内容全部搜索出来 ,这里现行解决方案为两条SQL语句
String.contains()判断搜索内容是否含有'%'
若含有则使用 select * from user_all_tables where table_name like '%%%' escape '_'
不含则使用 select * from user_all_tables where table_name like '%%%'
原文链接
6. SQL查询语句中SELECT LIKE用法详解
在SQL结构化查询语言中,LIKE语句有着至关重要的作用。
LIKE语句的语法格式是:
select
*
from
表名
where
字段名
like
对应值(子串),
它主要是针对字符型字段的它的作用是在一个字符型字段列中检索包含对应子串的。
A:%
包含零个或多个字符的任意字符串:
1、LIKE'Mc%'
将搜索以字母
Mc
开头的所有字符串(如
McBadden)。
2、LIKE'%inger'
将搜索以字母
inger
结尾的所有字符串(如
Ringer、Stringer)。
3、LIKE'%en%'
将搜索在任何位置包含字母
en
的所有字符串(如
Bennet、Green、McBadden)。
B:_(下划线)
任何单个字符:
LIKE'_heryl'
将搜索以字母
heryl
结尾的所有六个字母的名称(如
Cheryl、Sheryl)。
C:
[
]
指定范围
([a-f])
或集合
([abcdef])
中的任何单个字符:
1,
LIKE'[CK]ars[eo]n'
将搜索下列字符串:
Carsen、Karsen、Carson
和
Karson(如
Carson)。
2、LIKE'[M-Z]inger'
将搜索以字符串
inger
结尾、以从
M
到
Z
的任何单个字母开头的所有名称(如
Ringer)。
D:
[^]
不属于指定范围
([a-f])
或集合
([abcdef])
的任何单个字符:
LIKE'M[^c]%'
将搜索以字母
M
开头,
并且第二个字母不是
c
的所有名称(如MacFeather)。
E:
*
它同于DOS命令中的通配符,
代表多个字符:
c*c代表cc,cBc,cbc,cabdfec等多个字符。
F:
?同于DOS命令中的?通配符,
代表单个字符
:b?b代表brb,bFb等
G:
#
大致同上,
不同的是代只能代表单个数字。
k#k代表k1k,k8k,k0k。
F:
[!]
排除
它只代表单个字符
下面我们来举例说明一下:
例1,
查询name字段中包含有“明”字的。
select
*
from
table1
where
name
like
'%明%'
例2,
查询name字段中以“李”字开头。
select
*
from
table1
where
name
like
'李*'
例3,
查询name字段中含有数字的。
select
*
from
table1
where
name
like
'%[0-9]%'
例4,
查询name字段中含有小写字母的。
select
*
from
table1
where
name
like
'%[a-z]%'
例5,
查询name字段中不含有数字的。
select
*
from
table1
where
name
like
'%[!0-9]%'
以上例子能列出什么值来显而易见。
但在这里,我们着重要说明的是通配符“*”与“%”的区别。
很多朋友会问,
为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:
select
*
from
table1
where
name
like
'*明*'
select
*
from
table1
where
name
like
'%明%'
大家会看到,
前一条语句列出来的是所有的记录而后一条记录列出来的是name字段中含有“明”的记录,
所以说当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,
用“*”的时候只在开头或者只在结尾时而不能两端全由“*”代替任意字符的情况下。
7. 一条sql如何使用两个like查询两个字段
1、假设表名为proct,商品名为name,简界为remark.则可如下写:select [name],[remark] from proct name like '%aa%' or remark like '%aa%'.注:上面单引号的aa你表模糊查询输入的字符。
2、从(表名)中选择*,其中(搜索名)如“%%”,ID如“%(简介)%”
3、使用Like子句。页首:从[TableName]中选择*,其中[Name]类似于'%SQL%',[Introction]类似于'%Software%',这意味着[Name]部分包含“SQL”,并且[Introction]该级别包含“软件”记录。
4、从用户名*的序列号(例如'%small%')中,按IDascasc代表降序降序。
(7)在sql中模式查找like扩展阅读:
模糊搜索有两个主要定义点。
例如,当查找名称Smith时,您会发现类似的Smithe,Smythe,Smyth,Smitt等。
由系统的管理界面配置。例如,在将“计算机”和“计算机”配置为名词之后,搜索“计算机”,还将出现一个包含“计算机”的网页。在搜索结果中。
在图像搜索框中输入本地图像。
1、如果您的图片具有有意义的标题,一些“衣服”,那么搜索结果将显示相关的文本搜索结果
2、如果您的图片标题没有任何提示,则搜索结果仅显示相关图片。
3、搜索准确性随不同图片的满意度而变化,主流商业图片往往越准确
当前,诸如网络,谷歌和其他搜索引擎以及淘宝的平台类似地实现了该应用。
文字模糊搜索
搜索引擎或门户搜索:在搜索框中输入文本,然后选择模糊搜索模式以获取匹配项。
数据库搜索:常规模糊查询语句如下:从WHERE表中的类似条件中选择SELECT。
在这些条件中,SQL提供了多种匹配模式:
1、%:表示0个或多个字符。可以匹配任何类型和长度的字符,在某些情况下,如果是中文,请使用两个百分号(%%)。
2、_:表示任意分割字符。匹配拆分的任意字符,通常用于限制表达式的字符长度语句:
3、[]:表示括号中插入的字符之一(类似于正则表达式)。指定一个字符,字符串或范围,要求匹配的对象是它们之一。
4、[^]:表示括号内没有插入单个字符。它的值与[]相同,但是它要求将对象分配给除指定字符之外的任何其他字符。
5、当查询包含通配符时
由于使用了通配符,我们可以查询特殊字符“%”,“_”,“[”语句无法正常实现,并且特殊字符可以由“[]”正常查询。
在不同的数据库中,模糊搜索语句将有所不同,并且可以在系统帮助文档中找到。
8. 基于sql语言的属性查询中,运算符"like"与"="在实际操作中有何不同
like一般包含有通配符,%代表0个或多个字符,_代表一个字符,即like是模糊查询,=是精确匹配,
比如 姓名 like '张%'是查询姓张的人,姓名='张三',是查找名字是张三的人
9. 请问SQL中的like子句中可以使用的通配符有
SQL中的like子句中可以使用的通配符有:*、%、_。
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。"%" 可用于定义通配符(模式中缺少的字母)。在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。
SQL LIKE 操作符语法:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
(9)在sql中模式查找like扩展阅读
1、选取居住在以 "Ne" 开头的城市里的人: select * from Persons where city like '%Ne'
2、从 "Persons" 表中选取居住在包含 "lond" 的城市里的人: select * from Persons where city like '%lon%'
3、从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:select * from Persons where FirstName like '_eorge'
4、从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":
select * from Persons where FirstName like 'C_r_er'
5、从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
select * from Persons where City like '[ALN]%'
6、从上面的 "Persons" 表中选取居住的城市不以"A" 或 "L" 或 "N" 开头的人:
select * from Persons where City like '[!ALN]%'
7、从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人:
select * from Persons where City like '%g'
8、从 "Persons" 表中选取居住在不包含"lon" 的城市里的人
select * from Persons where city not like '%lon%'