【发布时间】:2017-12-17 20:23:36
【问题描述】:
我想检索进程的最后一个版本:
|编号 |姓名 |版本 |源ID | | 1 |测试1 | 1.00 | 0 | | 2 |测试1 | 1.01 | 1 | | 3 |测试1 | 1.02 | 1 | | 4 |测试1 | 1.03 | 1 | | 5 |测试2 | 1.00 | 0 | | 6 |测试2 | 1.01 | 4 | | 7 |测试2 | 1.02 | 4 | | 8 |测试3 | 1.00 | 0 |预期的结果是:
|编号 |姓名 |版本 |源ID | | 3 |测试1 | 1.02 | 1 | | 4 |测试1 | 1.03 | 1 | | 6 |测试2 | 1.01 | 4 | | 7 |测试2 | 1.02 | 4 | | 8 |测试3 | 1.00 | 0 |我已经编写了这个查询,但我不喜欢它...而且我不能将它作为子查询包含在 WHERE 中。
id IN (...)
SELECT (SELECT SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY process_version DESC), ',', 2) FROM process WHERE process_name = parent.process_name) AS ids FROM process AS parent WHERE 1 GROUP BY process_name
【问题讨论】:
-
您似乎需要最后 5 条记录。我说的对吗?
-
@mr.developer no
标签: mysql