MySQL中的union,mysql中union的用法

  MySQL中的union,mysql中union的用法

  我有一个表

  创建表“测试1”(

  ` id int(10)unsigned NOT NULL AUTO _ INCREMENT,

  ` name varchar(20)不为空,

  “desc”varchar(100)不为空,

  主键(` id `)

  )ENGINE=InnoDB DEFAULT CHARSET=utf8

  (1)以下查询会报错误:[Err]1221-UNION和以.排序的用法不正确

  select * from test1 where name like A % order by name

  联盟

  select * from test1 where name like B % order by name

  应改为:

  select * from test1,其中名称类似于"一个百分点"

  联盟

  select * from test1 where name like B % order by name

  因为联盟中,在不用括号的情况下,只能用一个排序依据(想一想,如果联盟两边的以.排序的列名不一样会怎么样),这会对联盟后的结果集进行排序

  或者改为:

  (select * from test1,其中名称如"一个百分点"按名称排序)

  联盟

  (select * from test1,其中名称如“B %”按名称排序)

  这两个以.排序在联盟前进行

  (2)同样的

  select * from test1,其中名称如"一个百分点"限制为10

  联盟

  select * from test1,其中名称如“B %”限制20

  相当于

  (select * from test1,其中名称如"一个百分点"限制10)

  联盟

  (select * from test1,其中名称如“B %”)限制20

  即后一个限制作用于的是联盟后的结果集,而不是联盟后的挑选

  也可以加括号来得到你想要的结果

  (select * from test1,其中名称如"一个百分点"限制10)

  联盟

  (select * from test1,其中名称如“B %”限制为20)

MySQL中的union,mysql中union的用法