mysql - 按特定顺序对数据进行排序(mysql)
问题描述
所以,假设我有这些数据
id | value | group
1 | 100 | A
2 | 120 | A
3 | 150 | B
4 | 170 | B
我想对它进行排序,让它变成这样
id | value | group
1 | 100 | A
3 | 150 | B
2 | 120 | A
4 | 170 | B
会有比这更多的组,所以如果我将数据排序为(A,C,B,D,B,C,A)这样的组,它将变为(A,B,C,D,A,B,C )
解决方案
您可以在表格中添加一个计数器列,该列将用于对表格进行排序:
select t.id, t.value, t.`group`
from (
select t.id, t.value, t.`group`,
(select count(*) from tablename
where `group` = t.`group` and id < t.id) counter
from tablename t
) t
order by t.counter, t.`group`
请参阅演示。
结果:
| id | value | group |
| --- | ----- | ----- |
| 1 | 100 | A |
| 3 | 150 | B |
| 2 | 120 | A |
| 4 | 170 | B |
推荐阅读
- c# - 如何替换 Queryable 中的列
以通用方式不执行 Queryable - python-3.x - 数字化热图并将像素映射到值
- authentication - Istio authservice oidc 无法交换访问令牌的授权码
- node.js - 运行 ng 命令时“getColorDepth 不是函数”
- tensorflow - keras中Conv1D之前的掩蔽
- c# - System.DirectoryServices.ActiveDirectory 的端口要求
- onenote - 带有 One Note Javascript API 的嵌套部分组
- image - Twilio 向 WhatsApp 发送多张图片
- parallel-processing - 使用多线程进行滚动功能
- go - 使用 golang 在 gcp 中创建实例时添加启动脚本