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)