我有像
这样的表格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”只是键列的子字符串,所以我不知道如何管理它。
答案 0 :(得分:0)
你有机会打破复杂的"列,以便您需要的值单独在列中?如果是这样,则查询简单且高效。否则我们需要一个强力解决方案......
SELECT MAX(SUBSTRING_INDEX('item:xxx:revs:3', ':', -1))
FROM t
GROUP BY SUBSTRING_INDEX('item:xxx:revs:3', ':', 3);