SQL语言中 like is = 有啥区别啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语言中 like is = 有啥区别啊?相关的知识,希望对你有一定的参考价值。

经常混淆他们 请问各问高手 他们到底有什么区别 各自什么时候用啊 ?????????????

万分感谢了 帮帮忙吧!!!!!!!!!
select sname from s where sdept like 'cs'and sage<20;


select sname from s where sdept= 'cs'and sage<20;
执行起来有区别吗?

查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?

大家的回答有点问题吧 '_阳%' 这样写不行吧 中文不是占两个字符吗 不应该是'__阳%'吗???? 我说的对不???????

参考技术A 接binjly,is一般用于特殊的比较,比如sdept is null。
“执行起来有区别”,你没有给like加通配符%、_,这样的话两条语句是没有区别的。

查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?
where name like '_阳%'

关于是"_"还是"__"的问题,看数据库系统的支持程度,绝大多数数据库是会认识"_"为一个中文字或一个字母的,不用担心。
另外,Access的通配符是?和*本回答被提问者采纳
参考技术B like
通常与 % 或 _ 一起使用
如: 字段名 like %变量%
表示:查询该字段 相似于 “变量” 的记录

=
如: 字段名=变量
表示:查询该字段 等于 “变量” 的记录

回答:查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?
where name='_阳'
这时应该用 =
参考技术C =是固定的,比如说 name='abc',查询到满足的结果的name必须是'abc'的。
like可以和通配符联合使用,比如说 name like ‘%abc',查询到的结果name是以’abc‘结尾的,前面可以有任意字符。如果name like 'abc'则效果和=’abc‘一样。

你写的那两个语句效果一样。

查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?
select sname from s where sname like '_阳%' 这样查出来的结果就是第二个字是阳的
参考技术D like可以进行模糊查询 比如 name like '%yinyin%' 匹配的就是XXXyinyinXXX,能查到yinyin1987
而=只能进行精确查询 比如 name = "yinyin" 匹配的只有"yinyin",查不到yinyin1987
第5个回答  2007-06-05 where sname like"-阳%";

不使用通配符时'='运算符和LIKE有啥区别

【中文标题】不使用通配符时\'=\'运算符和LIKE有啥区别【英文标题】:What's the difference between '=' operator and LIKE when not using wildcards不使用通配符时'='运算符和LIKE有什么区别 【发布时间】:2011-08-25 12:30:04 【问题描述】:

我做这个问题,因为我找不到相同原因的问题。原因是当我使用 LIKE 时,我得到了一致的结果,而当我使用 (=) 运算符时,我得到了不一致的结果。

案例 我有一个带有多个内连接和左连接的 BIG VIEW (viewX),其中一些列具有空值,因为数据库定义允许这样做。

    当我打开这个 VIEW 时,我看到例如:结果为 8 行。 当我运行例如:select * from viewX where column_int = 34 and type_string = 'xyz' 时,此查询显示 100 行,这些行未在视图结果中定义。 [不一致]

但是

    当我运行 select * from viewX where column_int = 34 and type_string like 'xyz' 时,此查询只显示 4 行,这是我打开时在视图中定义的(参见 1。)[CONSISTENT]

有人知道这里发生了什么吗?

【问题讨论】:

你能发布你的视图定义吗? 视图定义这么大,请尝试理解问题文本的问题,VIEW结果是一致的 【参考方案1】:

来自文档.....

'根据 SQL 标准,LIKE 以每个字符为基础进行匹配,因此它可以产生与 = 比较运算符不同的结果:'

更重要的是(使用 LIKE 时):

'字符串比较不区分大小写,除非其中一个操作数是二进制字符串'

来自: http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

【讨论】:

【参考方案2】:

Per the MySQL documentation LIKE 的功能与= 不同,尤其是当您有尾随或前导空格时。

您需要发布您的实际查询,但我猜它与已知差异有关。

【讨论】:

以上是关于SQL语言中 like is = 有啥区别啊?的主要内容,如果未能解决你的问题,请参考以下文章

java中like和likes有啥区别

sql中like是啥意思?

在Mysql中,!=与<>有啥区别?

在Oracle数据库条件查询语句中使用'%%','_%%'这两个有啥区别

SQL和T_SQL有啥区别

不使用通配符时'='运算符和LIKE有啥区别