mariadb:选择具有复杂列的不同
Posted
技术标签:
【中文标题】mariadb:选择具有复杂列的不同【英文标题】:mariadb: select distinct with complex columns 【发布时间】:2017-10-23 15:51:10 【问题描述】:我有这样的桌子
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
,但因为“项目 ID”只是键列的子字符串,我不知道如何管理它。
【问题讨论】:
【参考方案1】:您是否有机会分解“复杂”列,以便您需要的值单独存在于一列中?如果是这样,则查询简单且高效。否则我们需要一个蛮力解决方案......
SELECT MAX(SUBSTRING_INDEX('item:xxx:revs:3', ':', -1))
FROM t
GROUP BY SUBSTRING_INDEX('item:xxx:revs:3', ':', 3);
【讨论】:
以上是关于mariadb:选择具有复杂列的不同的主要内容,如果未能解决你的问题,请参考以下文章
SQL:在 MySQL/MariaDB 中选择具有窗口函数的某些行