MySQL 更新组内的 MAX id

标签 mysql

我的表(称为 SubTask)中有数据,如下所示:

STID     ID       HIVAL   TASK
1        4                ...
2        4
3        4  
4        4        1
5        5
6        5
7        5
8        5 
9        5        1

如您所见,hival 列标有 1,表示每个组中最高的 stid(stid 是一个唯一的数字) )。我无法弄清楚如何更新表以反射(reflect)这一点。使用以下查询我可以选择记录:

select stid, id, task from subtask where stid in (select max(stid) from subtask group by id)

选择后,如何更新记录以在 hival 列中添加 1?

最佳答案

那个 hival 列完全是多余的,拥有它会适得其反。正如您已经发现的,更新它是一个复杂的查询,并且会对性能造成很大影响。更糟糕的是,每次数据更改时您都必须更新它。

只需删除该列即可执行

SELECT max(stid), id from subtask GROUP BY id

关于MySQL 更新组内的 MAX id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43763657/

相关文章:

php - 'remember me' 功能的最佳实践?

java - 如何从数据库(MySQL)中分块获取记录

php - sql/php 从多个表条目中获取最小值和最大值

mysql - 具有多个表连接的每个组的前 N ​​个

PHP ID 不通过 url

Java 运行时执行 SQL 脚本在 SQL 错误时继续

python - Django表单提交后修改数据

mysql - Sphinx 可扩展性

mysql - TinyDB,在TinyDB中存储多个列表,在tinyDB中拆分存储的数据

mysql - 从转储恢复到空数据库时出现 1214 错误