基本上,如果我有一个包含列的mysql表:id,type,content,version。
将有多个具有相同类型的条目。版本是一个数字,随着某个类型的每个新条目递增。
我希望能够通过一个查询获取所有类型的每种类型的最新条目。
这是可能的还是我需要为每种类型单独进行查询?
干杯
答案 0 :(得分:1)
SELECT mi.*
FROM (
SELECT DISTINCT type
FROM mytable
) md
JOIN mytable mi
ON mi.id =
(
SELECT mo.id
FROM mytable mo
WHERE mo.type = md.type
ORDER BY
mo.type DESC, mo.version DESC, mo.id DESC
LIMIT 1
)
在(type, version, id)
上创建一个索引,以便快速工作。
答案 1 :(得分:1)
尝试:
SELECT
y.*
FROM YourTable y
INNER JOIN (SELECT
Type,MAX(Version) AS MaxVersion
FROM YourTable
GROUP BY Type
) dt ON y.Type=dt.Type AND y.Version=dt.Version