回答

收藏

mysql 更新前n个

技术问答 技术问答 233 人阅读 | 0 人回复 | 2023-09-14

我有这样的查询:
0 m$ B$ c, Q9 ]& }9 Zupdate  tableset     status = 1where   status = 2;但我只想操作前400名。我试着添加 limit 0,400(就像我在查询中一样),但是没用。我做了一些搜索,但是mysql似乎不像SQL# `5 {" l, s2 D, B" t
Server那样支持TOP(n)命令。0 G* u6 H; L; J3 X+ q
你知道我该怎么办吗?9 [+ m' p5 y( P+ x( E3 J  z  w* `8 ^  G
编辑:为了将来参考,我选择了以下样式:
+ \1 t0 {0 B1 U1 T- N$ [select  * from    tablewhere   ... limit 0,400;但无论出于什么原因,在更新中都不会与 0一起使用。我认为这种不一致和模棱两可的行为,但哦。
4 O5 o  D; }1 w3 B! {6 Z                                                               
2 n: ~. Z9 G4 b9 u    解决方案:                                                                : O8 ~# i5 ^" _+ k* n) t
                                                                UPDATE  tableSET     status = 1WHERE   status = 2ORDER BY idLIMIT 400签入MySQL 5.2.0-falcon-alpha-community-nt-log,确认工作正常。7 Q2 ]/ e8 j6 q/ P7 \: t
在你的情况下0,LIMIT 0,400是行不通的。' ^, ]6 Q/ n1 p/ w) F/ z
不能使用下界UPDATE的LIMIT。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则