您的位置:网站主页> Mysql教程 > mysql使用ANY, IN和SOME进行子查询

mysql使用ANY, IN和SOME进行子查询

时间:2018-06-04 02:00:01   编辑:一切随缘   文章来源:php教程网 已阅读:132 次

编程入门教程[www.ask186.com]网站介绍 

    编程入门教程主要涉及WEB开发领域,主要为广大WEB开发人员提供最新的WEB开发资讯信息,包含php教程mysql教程php面试题在线调色板php学习以及常用( Amazon ApiGoogle Api)等API、爱问资源共享HTML转JS不显示xml...[详细]
广告投放: 编程入门教程:www.ask186.com 电话:15818865556

        mysql使用ANY, IN和SOME进行子查询

        语法:

        operand comparison_operator ANY (subquery)
        operand IN (subquery)
        operand comparison_operator SOME (subquery)

        ANY关键词必须后面接一个比较操作符。

        ANY关键词的意思是“对于在子查询返回的列中的任一数值,如果比较结果为TRUE的话,则返回TRUE”。例如:

        SELECT s1 FROM t1 WHERE s1 > ANY (SELECT s1 FROM t2);

        假设表t1中有一行包含(10)。如果表t2包含(21,14,7),则表达式为TRUE,因为t2中有一个值为7,该值小于10。如果表t2包含(20,10),或者如果表t2为空表,则表达式为FALSE。如果表t2包含(NULL, NULL, NULL),则表达式为UNKNOWN。

        词语IN是=ANY的别名。因此,这两个语句是一样的:

        SELECT s1 FROM t1 WHERE s1 = ANY (SELECT s1 FROM t2);
        SELECT s1 FROM t1 WHERE s1 IN    (SELECT s1 FROM t2);

        不过,NOT IN不是<> ANY的别名,但是是<> ALL的别名。

        词语SOME是ANY的别名。因此,这两个语句是一样的:

        SELECT s1 FROM t1 WHERE s1 <> ANY  (SELECT s1 FROM t2);
        SELECT s1 FROM t1 WHERE s1 <> SOME (SELECT s1 FROM t2);
        
        使用词语SOME的机会很少,但是本例显示了为什么SOME是有用的。
        
        对于多数人来说,英语短语“a is not equal to any b”的意思是“没有一个b与a相等”,但是在SQL语法中不是这个意思。该语法的意思是“有部分b与a不相等”。使用<> SOME有助于确认每个人都理解该查询的真正含义。

 

  • 上一篇:
  • 下一篇:

本文地址:http://www.ask186.com/content/article/mysql/31959.html(转载请保留)

相关关键词搜索:mysql,使用,ANY,SOME,查询

发表评论
      
* 以上用户言论只代表其个人观点,不代表www.ask186.com网站的观点或立场
推荐文档更多
编程入门教程 | PHP教程 | Mysql教程 | Apache教程 | 最新文章 | PHP面试题| 网站地图 | Google地图 | Baidu地图 | 在线WEB论坛| 中纪委反腐最新消息

WEB技术QQ交流群:151963186 站长Q号:547214413
版权所有者:编程入门教程 地址:云南省文山州砚山县盘龙乡 滇ICP备12002707号-1
特别声明:本站内容仅供参考,不作为设计及确切依据!想了解更多,可立即进入Bbs提问