什么是SQL中的“喜欢”和“=”之间的区别?(What's the difference b

2019-07-20 10:31发布

是否有任何区别:

SELECT * FROM users WHERE username="davyjones"

SELECT * FROM users WHERE username LIKE "davyjones"

(我想我已经贻误了语法......原谅我说,
我主要是一个桌面应用程序开发的家伙)

Answer 1:

按SQL标准,所不同的是在治疗CHAR列尾随空白的。 例:

create table t1 ( c10 char(10) );
insert into t1 values ('davyjones');

select * from t1 where c10 = 'davyjones';
-- yields 1 row

select * from t1 where c10 like 'davyjones';
-- yields 0 rows

当然,假设你在一个符合标准的DBMS运行此。 顺便说一句,这是一个字符和VARCHAR处理之间的主要区别。



Answer 2:

LIKE允许局部匹配/使用通配符,而=检查完全匹配。

例如

SELECT * FROM test WHERE field LIKE '%oom';

将返回行,其中字段值为以下任一:

Zoom, Boom, Loom, Groom


Answer 3:

在这种情况下,没有什么区别,将拿出的结果。 但是,它使用了对比不同的方法,而“喜欢”会慢得多。

看看这个像的例子: http://www.techonthenet.com/sql/like.php

在这种情况下,你仍然要使用等号。

更新 :请注意,有一个关键的区别,当涉及到CHAR类型列在其结果有所不同。 见这个答案的更多细节。 当使用VARCHAR(大概是范数),以上是等价的,等于是优选的。



Answer 4:

LIKE允许像通配符% (任意数目的字符在这里)和_ (这里一个字符)。

SELECT * FROM users WHERE username LIKE 'joe%'

开始选择所有的用户名joe



Answer 5:

create table A (id int,name varchar(30))

insert into A values(4,'subhash')

使用尾随空白搜索名称字段:

select * from A where name='Subhash '
--Yields 1 row
select * from A where name like 'Subhash '
--Yields 0 row


Answer 6:

LIKE搜索的模式。

/* Returns all users whose username starts with "d" */
SELECT * FROM users WHERE username LIKE 'd%'

/* Returns all users whose username contains "dav" */
SELECT * FROM users WHERE username LIKE '%dav%'


Answer 7:

这会给你同样的结果。 然而,像允许通配符,例如...

SELECT * FROM users WHERE username LIKE 'davy%'

唯一的语法问题是双引号代替单引号



Answer 8:

LIKE支持通配符。 通常它使用的通配符%或_字符。

使用LIKE运算没有通配符是一样使用=操作符。



Answer 9:

LIKE条件允许您使用通配符:

SELECT * FROM suppliers
WHERE supplier_name like 'Hew%';

查看更多的例子。

和equals =用于平等匹配。



Answer 10:

像是模式匹配操作者和=是精确匹配操作。 即,其中,如姓名W%这意味着先从W和之后的一个或多个字符,并且=即,其中名称='James'这是确切的匹配



Answer 11:

等于'='仅仅是平等的。 在另一方面, LIKE支持SQL通配符匹配。

所以,用LIKE ,你可以做name like '%jones'得到琼斯结束所有名称。 随着LIKE ,百分比'%'字符是什么,长度零个或多个,和下划线, '_' ,是任何一个字符。



Answer 12:

据我所知,目前还没有什么区别,但时间成本两个选择你写。 通常一个使用LIKE连同% ,意思是“任意字符串”。 我觉得也有可与中使用的字符LIKE为“任何字符”,不知道那是什么,无需Google。

但随着你的两个选择去,我看到的唯一区别是不同的运行时间,因为LIKE是在正则表达式-排序的时尚应用。



Answer 13:

Like让你与外卡运营商合作,你可以用它在你的情况为like 'davyjon%'把所有的结果,从davyjon ,并得到确切的你可以将'davyjones' ,你也可以使用=在这个案例



文章来源: What's the difference between “LIKE” and “=” in SQL?