mariadb:选择不同的复杂列

时间:2017-10-23 15:51:11

标签: mysql mariadb distinct

我有像

这样的表格
key | value
item:yyy:revs:1 | somevalue
item:xxx:revs:0 | somevalue
item:yyy:revs:5 | somevalue
item:xxx:revs:3 | somevalue

我现在想要为具有最高版本号的每个项目(xxx,yyy)选择行。仅在此示例中:

item:yyy:revs:5 | somevalue
item:xxx:revs:3 | somevalue

通常我会使用distinct,但因为“item id”只是键列的子字符串,所以我不知道如何管理它。

1 个答案:

答案 0 :(得分:0)

你有机会打破复杂的"列,以便您需要的值单独在列中?如果是这样,则查询简单且高效。否则我们需要一个强力解决方案......

SELECT MAX(SUBSTRING_INDEX('item:xxx:revs:3', ':', -1))
    FROM t
    GROUP BY SUBSTRING_INDEX('item:xxx:revs:3', ':', 3);