0
有一張5列的表格:id
,data
,category
,time
,page
。 我想行,其中id
>given id
和category
= given category
,通過page
它們分組,得到由time
下令每個頁面的第一和遞減的行page
列。 (time
不是唯一的)更新每個組的第一條記錄
我設法創建此查詢,它的工作原理,但我想知道是否有任何更好的解決方案。 我在選擇合適的問題標題時也遇到了問題,因此如果您認爲問題不是應該如此,請隨時糾正我。
UPDATE `content` AS TABLE1
INNER JOIN (SELECT MIN(TABLE2.`id`) AS ID, TABLE2.`page` FROM `content` AS TABLE2
INNER JOIN (
SELECT DISTINCT `page`, MIN(`time`) AS MINTIME
FROM `content`
WHERE (`page` > (SELECT `page` FROM `content` WHERE `id` = ?) AND `category` = ?)
GROUP BY `page`) AS TABLE3
ON TABLE2.`page` = TABLE3.`page` AND TABLE2.`time` = TABLE3.MINTIME
GROUP BY TABLE2.`page`) AS TABLE4
ON TABLE1.`id` = TABLE4.ID
SET TABLE1.`page` = TABLE1.`page` - 1