mysqlunion⽤法update_mysql---union的⽤法
union的作⽤很简单⽤来合并两条sql的结果集
语法: SQL1 UNION SQL2
现有⼀张价格表
无主之地2 ns要求:求出价格低于2000和价格⾼于3000的商品,不能⽤or和not between……and
思路:我们可以先求出低于2000的商品得到结果集1手绘板英文
再求出⾼于3000的商品得到结果集2
再利⽤union合并结果集1和结果集2
什么时候才允许使⽤union?
手机版mysql管理工具答:只要两个结果集的列数相同就可以使⽤,即使字段类型不相同,也可以使⽤。
第⼀个结果集有2列,第⼆个结果集有1列,运⾏后提⽰列数不⼀样的提⽰。
列数相同,但字段类型不同。如goods_name是字符类型⽽goods_id是整形,但同样可以union。值得注意的是union后字段的名称以第⼀条SQL为准
关于union的排序
可见内层排序没有发⽣作⽤,那现在试试在外层排序mysql语句顺序
可见外层排序发⽣了作⽤
那是不是内层排序就没有⽤了呢,其实换个⾓度想想内层先排序,外层⼜排序,明显内层排序显得多余,所以MYSQL优化了SQL语句,不让内层排序起作⽤。要想内层排序起作⽤,必须要使内层排序的结果能影响最终的结果。如:加上limit
这样内层排序就起作⽤了
installshield wizard>虚拟变量取值为0或1
若两次有重复的⾏出现会怎样?
再创建2个表,
表A
表B
表A和表B中有两条相同的记录‘王五’,‘⼩⾼’
现在使⽤union看⼀下结果
可以看到‘王五’和‘⼩⾼’只有⼀条记录,所以另⼀条记录被覆盖了,要想不被覆盖可以使⽤union all
如图所⽰,‘王五’和‘⼩⾼’没有被覆盖