maysql 报错> 1221 - Unknown error 1221

当在MySQL中尝试合并带有ORDER BY的SQL查询时,可能会遇到1221错误。该错误是由于在使用UNION或UNION ALL时,每个查询部分不应包含ORDER BY。解决方法有两种:一是将ORDER BY放在每个子查询内部,然后通过外部查询进行合并;二是使用子查询分别对每个表进行排序后再进行UNION操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql出现> 1221 - Unknown error 1221

1.当我们拼接2条sql时,就会用到 union all 和union
union all 和 union的区别是
union:会把两个查询语句的结果集合并起来,会过滤掉两个结果集中重复的行。
union all:不会过滤掉重复行,把所有的数据查询出来
2.报错的原因是,我们写的2条sql
查询时 每一条都使用了order by
3.解决办法有两个
1.1

(SELECT A,B,C FROM `s` ORDER BY A DESC) 
UNION 
(SELECT A,B,C FROM `r` ORDER BY B DESC);

1.2

SELECT * FROM 
(SELECT A,B,C FROM `s` ORDER BY A DESC)
 AS t1 
 UNION 
 SELECT A,B,C FROM `r` ORDER BY B DESC;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值