Ⅰ MYsql里使用正则的速度快还是使用like模糊查询语句快
当然是like快,因为正则表达式里面可以匹配的东西太多了,反而会慢下来,当然啦,你数据库不大可能感觉不出来,到大型企业你就可以感觉的出来。
一般来说,大型企业的数据库搜索我们都是用索引。
Ⅱ 请问SQL PLUS中的in和like的用法
当like和in能互换的时候,like时需要用到or
如
字段
like
'1%'
or
字段
like
'2%'
如果改用in
则是substr(字段,1,1)
in
(1,2)
不过后一种效率相对低,可能有的索引会用不上
你们老板什么意思,我也没弄懂
Ⅲ sql语句中关于like 和 in
*是一个实际的字符,而%是通配符,两个不是一个概念
sql中的通配符%才代表任意字符,*在sql中没有通配符的意思,虽然在像dos环境之类下是代表任意字符的意思
elect
*
from
sysuser
a
where
a.login_name
like
'sys*';
等于
select
*
from
sysuser
a
where
a.login_name
=
'sys*';
Ⅳ sql语句中条件查询里in、like、及=三个的效率怎么样
1、如果条件字段都是非索引字段,那么效率都差不多,就看结果大小。
2、有差别的在于条件字段是索引字段时:
=在所以的情况下都会进行索引扫描,所以效率总是高的。
like 当模糊查询为右模糊,比如'abc%'时,扫描索引,高效。
当模糊查询含左模糊时,比如'%abc',进行全表扫描,低效。
in的作用等同于or ,也是进行索引扫描,高效。
另外,in还可以连接查询结果集,这时往往会和exists做比较。
a、 select * from t1 where f1 in (select f1 from t2 where t2.fx='x'),
其中子查询的where里的条件不受外层查询的影响,这类查询一般情况下,自动优化会转成exist语句,也就是效率和exist一样。
b、 select * from t1 where f1 in (select f1 from t2 where t2.fx=t1.fx),
其中子查询的where里的条件受外层查询的影响,这类查询的效率要看相关条件涉及的字段的索引情况和数据量多少,一般效率不如exists,数据量大时,效果就更加明显。
Ⅳ sql语句中关于like 和 in
like的语法没问题,检查globaltxt变量,你可以在if语句中加入一句显示globaltxt变量的语句,看这个变量值对不对
Ⅵ sql server 中 in 和like 有什么区别
首先是in,in在检索语句当中检索出来的值和列表提供的值是完全符合的。比如数据当中有一个值是一个字符'name’那么在in语句当中你就要写成“in('name')”他还可以配合not使用,仅不过意思相反。
其次是like,like和in是有一定区别的,like一般与通配符一起使用,他可以检索出一些特地定格式的字符。比如在一系列的数据当中,你要求检索出以数字1开头的数据,你就可以使用like'1%'。这里要说明一下sql提供的通配符主要有四种 '%', '_', '[ ]', '[ ^ ]'。下面对通配符做一些简单说明:
1、'%'其后可用于接无数个字符串:在查询中如此使用like 's_',即可查出以s开头的值;
2、'_'其后仅可以得到一个字符,如以sales为例,like's_'如此使用,不能找出sales,而应like 'sale_'即可查出sales;
3、'[ ]'表示出现的字符是在一定的范围内,一般情况下它是配合'%'使用的。如like ’p[ r,o]%,他就可以查出以p开头的值,并且其后第二个字符,是r,或者是o,即pocket,proct、、、
4、 '[ ^ ]'是与其相反的,如like ‘ p[^ r,o]% ',就是检索出以p开头但第二个字符不是r或o的字符。
希望我的回答能对你有所帮助
Ⅶ 请问SQL PLUS中的in和like的用法
当like和in能互换的时候,like时需要用到or
如 字段 like '1%' or 字段 like '2%'
如果改用in 则是substr(字段,1,1) in (1,2)
不过后一种效率相对低,可能有的索引会用不上
你们老板什么意思,我也没弄懂
Ⅷ sql2005语句中in、like、=、exist四个的节省资源方面比较
我记得你昨天好像也问过,我当时就说能用EXISTS尽量用EXISTS了
其实既然用EXISTS很少会用到IN的,否则就是画蛇添足了。
你的这个例子没有价值,本来就没有用到IN。
我给你个例子吧,
假设有三个表
学生S(S#,SNAME,AGE,SEX)
学习SC(S#,C#,GRADE)
课程C(C#,CNAME,TEACHER)
现在要检索WANG同学未学的课程的课程号。
分别有两种方法能完成查询(in,exists)
方法一:
Select c#
From C
Where c# not in (select c#
From sc,s
Where s.name=’wang’and s.s#=sc.s#)
方法二:
Select c#
From c
Where not exists(select *
From s,sc
Where s.s#=sc.s# and sc.c#=c.c# and sname=’wang’)
在这个查询中可能速度差别不大,但是实际中如果数据量大的话,能用EXISTS那就尽量用EXISTS,因为嵌套在IN内的的SQL语句返回的是具体结果,而EXISTS只返回[是]还是[否],一般速度比IN快很多
另外,like就不要和它们做比较了,根本就不是一件事情,功能不同的。
IN的本质是N个等于,中间用OR连起来,效率和IN是一样的,如果你不嫌烦的话,你甚至可以把IN里面的几百件个结果用几百上千个等于号连起来,查询效率是一样的,只不过,可能到下班你那句SQL还没有写完吧。
Ⅸ MySQL数据库在索引条件相同的情况下,正则和LIKE模糊匹配,谁的效率 更好一般用哪个
在索引相同情况下,效率差不多。不过还要经过严格测试才能知道答案。
说实话,这两个方法效率都不高,原因是使用正则或者like时,一般情况下,索引会失效。
建议使用全文索引。