avi*_*ldg 42 sql syntax comparator
之间有什么区别:
SELECT * FROM users WHERE username="davyjones"
Run Code Online (Sandbox Code Playgroud)
和
SELECT * FROM users WHERE username LIKE "davyjones"
Run Code Online (Sandbox Code Playgroud)
(我想我已经搞砸了语法......原谅我,
我主要是桌面应用程序开发人员)
cod*_*gar 39
LIKE允许部分匹配/使用通配符,同时=检查完全匹配.
例如
SELECT * FROM test WHERE field LIKE '%oom';
Run Code Online (Sandbox Code Playgroud)
将返回字段值为以下任何值的行:
Zoom, Boom, Loom, Groom
Run Code Online (Sandbox Code Playgroud)
Mil*_*kov 34
根据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
Run Code Online (Sandbox Code Playgroud)
当然,假设您在符合标准的DBMS上运行此操作.顺便说一句,这是CHAR和VARCHAR之间的主要区别之一.
Eri*_*ich 12
在这种情况下,结果中没有任何差异.但是,它使用不同的方法进行比较,"LIKE"会慢得多.
看看这个LIKE的例子:http://www.techonthenet.com/sql/like.php
在这种情况下,您仍然希望使用等于.
更新:请注意,有一个关键的区别,当涉及到CHAR类型列在其结果会有所不同.有关详细信息,请参阅此答案.当使用VARCHAR(可能是标准)时,上述是等价的,等于是优选的.
小智 5
create table A (id int,name varchar(30))
insert into A values(4,'subhash')
Run Code Online (Sandbox Code Playgroud)
使用尾随空格搜索名称字段:
select * from A where name='Subhash '
--Yields 1 row
select * from A where name like 'Subhash '
--Yields 0 row
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47903 次 |
| 最近记录: |