• 技术文章 >数据库 >mysql教程

    mysql---union的用法_MySQL

    2016-06-01 13:08:38原创457
    union的作用很简单用来合并两条sql的结果集

    语法: SQL1 UNION SQL2

    现有一张价格表

    \

    要求:<喎�"http://www.bitsCN.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPsfzs/a82yYjMjY2ODQ7tc3T2jIwMDC6zbzbJiMyNjY4NDu439PaMzAwMLXEyczGt6OssrvE3NPDb3K6zW5vdCBiZXR3ZWVuoa2hrWFuZDwvcD4KPHA+PHN0cm9uZz7LvMK3o7o8L3N0cm9uZz7O0sPHv8nS1M/Ix/Oz9rXN09oyMDAwtcTJzMa3tcO1vb3hufu8rzE8L3A+CjxwPtTZx/Oz9rjf09ozMDAwtcTJzMa3tcO1vb3hufu8rzI8L3A+CjxwPtTZwPvTw3VuaW9uus+yor3hufu8rzG6zb3hufu8rzI8L3A+CjxwPjxpbWcgc3JjPQ=="http://www.bitsCN.com/uploadfile/Collfiles/20140618/2014061808570348.jpg" alt="\">

    什么时候才允许使用union?

    答:只要两个结果集的列数相同就可以使用,即使字段类型不相同,也可以使用。

    \

    第一个结果集有2列,第二个结果集有1列,运行后提示列数不一样的提示。

    \

    列数相同,但字段类型不同。如goods_name是字符类型而goods_id是整形,但同样可以union。值得注意的是union后字段的名称以第一条SQL为准


    关于union的排序

    \

    可见内层排序没有发生作用,那现在试试在外层排序

    \

    可见外层排序发生了作用

    那是不是内层排序就没有用了呢,其实换个角度想想内层先排序,外层又排序,明显内层排序显得多余,所以MYSQL优化了SQL语句,不让内层排序起作用。要想内层排序起作用,必须要使内层排序的结果能影响最终的结果。如:加上limit

    \

    这样内层排序就起作用了


    若两次有重复的行出现会怎样?

    再创建2个表,

    表A

    \

    表B

    \

    表A和表B中有两条相同的记录‘王五’,‘小高’

    现在使用union看一下结果

    \

    可以看到‘王五’和‘小高’只有一条记录,所以另一条记录被覆盖了,要想不被覆盖可以使用union all


    如图所示,‘王五’和‘小高’没有被覆盖

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:
    上一篇:MySQL中使用INNER JOIN来实现Intersect并集操作_MySQL 下一篇:sql积累--替换指定字段数据中的指定内容_MySQL
    Web大前端开发直播班

    相关文章推荐

    • union all在mysql中的用法是什么• mysql怎么增加权限• 夯实MySQL基础的问题归纳• 一文搞懂MySQL数据库怎么备份与恢复• 浅析MySQL中的事务隔离级别,聊聊其实现原理

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网