如何在 mysql SELECT 中替换具有优先级的行?
例如:
code, attr, val, precedence
(0, 'key', 'value1', 1 )
(1, 'key', 'value2', 1 )
(2, 'key', 'value3', 1 )
(3, 'key2', 'value1', 1 )
(4, 'key3', 'value1', 1 )
(5, 'key', 'nothis', 2 )
(6, 'key', 'final_value', 3 )
我想要得到这样的东西:
(6, 'key', 'final_value', 3 )
(3, 'key2', 'value1', 1 )
(4, 'key3', 'value1', 1 )
How to do it in MySQL?
For example:
code, attr, val, precedence
(0, 'key', 'value1', 1 )
(1, 'key', 'value2', 1 )
(2, 'key', 'value3', 1 )
(3, 'key2', 'value1', 1 )
(4, 'key3', 'value1', 1 )
(5, 'key', 'nothis', 2 )
(6, 'key', 'final_value', 3 )
I want to get something like this:
(6, 'key', 'final_value', 3 )
(3, 'key2', 'value1', 1 )
(4, 'key3', 'value1', 1 )
How to do it that in MySQL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 id 的最大优先级列表进行连接。类似的事情:
每个属性仅分组一行;可以用 SELECT 子句中的 DISTINCT 替换
Make join with list of maximum precedences for id. Something like that:
grouping for only one row per attr; can be replaced by DISTINCT on SELECT clause