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 句该怎么写啊?
大家的回答有点问题吧 '_阳%' 这样写不行吧 中文不是占两个字符吗 不应该是'__阳%'吗???? 我说的对不???????
“执行起来有区别”,你没有给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 = 有啥区别啊?的主要内容,如果未能解决你的问题,请参考以下文章