Mysql 使用计数时从另一个表更新一个表?

Mysql 使用计数时从另一个表更新一个表?,mysql,Mysql,我有一个带有id(int)和timestamp(timestamp)字段的stats表 给我十大身份证 我想把这些id放在另一张“热门”表格中 Popular有id(int)、position(int)和timestamp(timestamp)字段 总之,我想创建一个查询,用stats表中的“前10个”id更新流行表 INSERT INTO `popular` (`id`,`position`,`timestamp`) ( SELECT `id`,COUNT(`id`),NOW()

我有一个带有id(int)和timestamp(timestamp)字段的stats表

给我十大身份证

我想把这些id放在另一张“热门”表格中

Popular有id(int)、position(int)和timestamp(timestamp)字段

总之,我想创建一个查询,用stats表中的“前10个”id更新流行表

INSERT INTO `popular` (`id`,`position`,`timestamp`)
(
   SELECT `id`,COUNT(`id`),NOW() 
   FROM `stats` GROUP BY `id` 
   ORDER BY COUNT(`id`) DESC LIMIT 10
)
不过,这并不是一个很好的更新。这将把
stats
中新的“前10名”条目放入
popular
,同时保留“旧的前10名”。以前可能需要在
popular
上执行
TRUNCATE


更新:将清空给定的表。它几乎与
DELETE FROM
相同,但它也会重置
auto_increment

Linus中的任何主键,没错。我将无法使用insert,因为它将不断添加新记录。告诉我有关TRUNCATE的更多信息。我将使用PHP在网页上显示流行表中的数据。如果我修改或删除这些数据,这会导致一个空网页吗?即使只是一瞬间,如果出现错误,情况会更糟。或者我会担心什么。如果你担心微调秒,代码>流行< /代码>是空的排空后,并更新之前,考虑。好,莱纳斯。我仍然放弃了更新,因为我刚刚发现这个问题似乎与我的问题相似。你们认为这对我的情况有效吗?@jamjam
UPDATE
只有在你实际更新现有id的位置时才“有效”。如果其他ID可以进入前10名,则必须选择TRUNCATE/INSERT。该表的大小是多少?使用
SELECT..groupby
INSERT INTO `popular` (`id`,`position`,`timestamp`)
(
   SELECT `id`,COUNT(`id`),NOW() 
   FROM `stats` GROUP BY `id` 
   ORDER BY COUNT(`id`) DESC LIMIT 10
)