mysql union 用法 update_mysql---union的用法
union的作用很簡單用來合并兩條sql的結果集
語法: SQL1 UNION SQL2
現有一張價格表
要求:求出價格低于2000和價格高于3000的商品,不能用or和not between……and
思路:我們可以先求出低于2000的商品得到結果集1
再求出高于3000的商品得到結果集2
再利用union合并結果集1和結果集2
什么時候才允許使用union?
答:只要兩個結果集的列數相同就可以使用,即使字段類型不相同,也可以使用。
第一個結果集有2列,第二個結果集有1列,運行后提示列數不一樣的提示。
列數相同,但字段類型不同。如goods_name是字符類型而goods_id是整形,但同樣可以union。值得注意的是union后字段的名稱以第一條SQL為準
關于union的排序
可見內層排序沒有發生作用,那現在試試在外層排序
可見外層排序發生了作用
那是不是內層排序就沒有用了呢,其實換個角度想想內層先排序,外層又排序,明顯內層排序顯得多余,所以MYSQL優化了SQL語句,不讓內層排序起作用。要想內層排序起作用,必須要使內層排序的結果能影響最終的結果。如:加上limit
這樣內層排序就起作用了
若兩次有重復的行出現會怎樣?
再創建2個表,
表A
表B
表A和表B中有兩條相同的記錄‘王五’,‘小高’
現在使用union看一下結果
可以看到‘王五’和‘小高’只有一條記錄,所以另一條記錄被覆蓋了,要想不被覆蓋可以使用union all
如圖所示,‘王五’和‘小高’沒有被覆蓋
總結
以上是生活随笔為你收集整理的mysql union 用法 update_mysql---union的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Solr的原理及使用
- 下一篇: 远程连接服务器数据库报错:Host ‘X