sql - 使用 mysql 5.1.41 更新表中最高的几行

标签 sql mysql

我有一个包含数百行的表格。我想根据 num 列的值取前 20 名,并将 num 替换为数字。

我尝试做的(没有成功)是:

UPDATE table
SET num = 95
WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 20)

有什么建议吗?

最佳答案

不需要子查询 - 你可以 use LIMIT in an UPDATE statement on MySQL :

  UPDATE table
     SET num = 95
ORDER BY id DESC
   LIMIT 20

不清楚您要按什么进行排序 - 我根据您的子查询使用了 id,但如果它需要按 num 值:

  UPDATE table
     SET num = 95
ORDER BY num DESC
   LIMIT 20

关于sql - 使用 mysql 5.1.41 更新表中最高的几行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292938/

相关文章:

mysql - 使用 JOIN 获取大量记录

c# - 从不可排序的表 SQL Server 中查询和导出

mysql - 选择一定值的数据

php - 无法在表单输入上使用 PHP _POST 从 MySQL 数据库检索学生信息

java - 保存多个多对一关系时的 Hibernate 优化

php - 从同一个表中获取不同条件的数据

sql - 如何使用 Group by 和 Sum 更新表

MySQL REPLACE 和 DUPLICATE KEY 未给出列值之和

PHP 脚本无法在本地计算机上运行,​​但可以在网络服务器上运行

php - MySql:索引循环