sqllike中文
Ⅰ 在sql语句中,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 。
下面我们来举例说明一下:
例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字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。
Ⅱ mysql 模糊查询like'%中文%'
1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如 SELECT * FROM [user] WHERE u_name LIKE '三__'; 只找出“三脚猫”这样name为三个字且第一个字是“三”的;
3,[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三' 将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * FROM [user] WHERE u_name LIKE '老[1-9]' 将找出“老1”、“老2”、……、“老9”;
4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三' 将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]'; 将排除“老1”到“老4”,寻找“老5”、“老6”、……
5,查询内容包含通配符时
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
function sqlencode(str) str=replace(str,"';","';';")
str=replace(str,"[","[[]") ';此句一定要在最先 str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function
Ⅲ 一条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代表降序降序。
(3)sqllike中文扩展阅读:
模糊搜索有两个主要定义点。
例如,当查找名称Smith时,您会发现类似的Smithe,Smythe,Smyth,Smitt等。
由系统的管理界面配置。例如,在将“计算机”和“计算机”配置为名词之后,搜索“计算机”,还将出现一个包含“计算机”的网页。在搜索结果中。
在图像搜索框中输入本地图像。
1、如果您的图片具有有意义的标题,一些“衣服”,那么搜索结果将显示相关的文本搜索结果
2、如果您的图片标题没有任何提示,则搜索结果仅显示相关图片。
3、搜索准确性随不同图片的满意度而变化,主流商业图片往往越准确
当前,诸如网络,谷歌和其他搜索引擎以及淘宝的平台类似地实现了该应用。
文字模糊搜索
搜索引擎或门户搜索:在搜索框中输入文本,然后选择模糊搜索模式以获取匹配项。
数据库搜索:常规模糊查询语句如下:从WHERE表中的类似条件中选择SELECT。
在这些条件中,SQL提供了多种匹配模式:
1、%:表示0个或多个字符。可以匹配任何类型和长度的字符,在某些情况下,如果是中文,请使用两个百分号(%%)。
2、_:表示任意分割字符。匹配拆分的任意字符,通常用于限制表达式的字符长度语句:
3、[]:表示括号中插入的字符之一(类似于正则表达式)。指定一个字符,字符串或范围,要求匹配的对象是它们之一。
4、[^]:表示括号内没有插入单个字符。它的值与[]相同,但是它要求将对象分配给除指定字符之外的任何其他字符。
5、当查询包含通配符时
由于使用了通配符,我们可以查询特殊字符“%”,“_”,“[”语句无法正常实现,并且特殊字符可以由“[]”正常查询。
在不同的数据库中,模糊搜索语句将有所不同,并且可以在系统帮助文档中找到。
Ⅳ sql中的like语句,为什么搜不了中文关键字了
汉字到sql里边的时候乱码了吧?
不是的,汉字在数据里能正常显示不一定在sql文里就不是乱码。汉字挺麻烦的,老是有乱码问题,一般发生在两个地方,第一是从页面往后台提交的时候就乱了,你在页面开始地方指定文字编码就行<meta http-equiv="Content-Type" content="text/html; charset=gb2312">gb2312就是中文。第二个地方比较头疼,就是在后台执行sql文的时候乱码了,这就得修改环境变量了。
你就用排他法试验吧,先看看是不是第一种情况
Ⅳ SQL-like怎么翻译
SQL式。数据库查询语言式。像SQL的。
Ⅵ sql like %99 意思
like的用法而已,就是将A表中c列的数据中以99结尾的数据选择出来。这个查询很慢,没有用到索引,建议少用。
Ⅶ 请问SQL 使用LIKE 查询语句,怎么区分例“你好”和“你好啊”这种只差一个汉字的词,输出含有“你好”的。
LIKE 本身就是包含的意思,"你好啊"是包含了"你好"这个词,所以用LIKE查"你好"同时会出现"你好啊".
如果只想查"你好",可用用=,不用LIKE
SELECT * FROM table1 WHERE uname ='你好'
Ⅷ sql中的like用法
like是针对字符型的
你可以先把数字转化成字符再用like
select * from Table1 where TO_CHAR(列名) like '%1%'
Ⅸ 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字段中含有“明”的记录,
所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。
Ⅹ 在plsql中用like语句查询汉字值时,查询不到结果。
可查询下张三存储ascii码是多少?
select ascii('张三') from al与表里该字段的这个值对比,如果不一样,那么你现在查询不到结果就是正确的