MySQL按索引排序,然后一起复制
我希望按ID对行进行排序,然后按顺序显示重复项 例如:MySQL按索引排序,然后一起复制,mysql,mariadb,sql-order-by,Mysql,Mariadb,Sql Order By,我希望按ID对行进行排序,然后按顺序显示重复项 例如: id color 1 red 2 green 3 yellow 4 green 5 green 6 red 预期: id color 1 red 6 red 2 green 4 green 5 green 3 yellow 如果您使用的是MySql 8.0+,则可以使用MIN()窗口函数: select t.id, t.color
id color
1 red
2 green
3 yellow
4 green
5 green
6 red
预期:
id color
1 red
6 red
2 green
4 green
5 green
3 yellow
如果您使用的是MySql 8.0+,则可以使用MIN()窗口函数:
select t.id, t.color
from (
select *,
min(id) over (partition by color) minid
from tablename
) t
order by t.minid, id
对于以前的版本:
select t.* from tablename t
order by (select min(id) from tablename where color = t.color), id;
请参阅。结果:
一个简单的
按颜色排序,id
,虽然它会先变成绿色,然后变成红色,然后变成黄色。那有关系吗?
| id | color |
| --- | ------ |
| 1 | red |
| 6 | red |
| 2 | green |
| 4 | green |
| 5 | green |
| 3 | yellow |