mysql查詢重複記錄中指定最大(最小)值
阿新 • • 發佈:2019-01-29
在有多條欄位重複記錄的表中,經常需要查詢重複記錄中的最大,最小值。
1.直接使用max()函式,例子是獲取最大的id
測試表結構:
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`role_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
SELECT
max(id)
FROM
test
GROUP BY
role_id
2.可以用表自連線實現
SELECT * FROM test WHERE id NOT IN ( SELECT t.id FROM test t JOIN test e ON t.role_id = e.role_id WHERE t.id > e.id GROUP BY t.id )
tips:假如需要刪除,不能直接刪除自己select出來的結果,可以用別名如下:
DELETE
FROM
test
WHERE
id IN (
SELECT
m_id
FROM
(
SELECT
max(id) AS m_id
FROM
test
GROUP BY
role_id
) b
)