加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在SQL(MySQL)中是否有办法在特定字段上执行“循环”ORDER BY?

发布时间:2021-03-06 14:24:19 所属栏目:MsSql教程 来源:网络整理
导读:SQL(MySQL)中是否有办法在特定字段上执行“循环”ORDER BY? 作为一个例子,我想采取这样一个表: +-------+------+| group | name |+-------+------+| 1 | A || 1 | B || 1 | C || 2 | D || 2 | E || 2 | F || 3 | G || 3 | H || 3 | I |+-------+------+

SQL(MySQL)中是否有办法在特定字段上执行“循环”ORDER BY?

作为一个例子,我想采取这样一个表:

+-------+------+
| group | name |
+-------+------+
|     1 | A    |
|     1 | B    |
|     1 | C    |
|     2 | D    |
|     2 | E    |
|     2 | F    |
|     3 | G    |
|     3 | H    |
|     3 | I    |
+-------+------+

并运行以此顺序生成结果的查询:

+-------+------+
| group | name |
+-------+------+
|     1 | A    |
|     2 | D    |
|     3 | G    |
|     1 | B    |
|     2 | E    |
|     3 | H    |
|     1 | C    |
|     2 | F    |
|     3 | I    |
+-------+------+

请注意,该表可能有很多行,因此我无法在应用程序中进行排序. (我在查询中显然也有一个LIMIT子句).

解决方法

你可以做的是创建一个临时列,你在其中创建集合,给你这样的东西:
+-------+------+-----+
| group | name | tmp |
+-------+------+-----+
|     1 | A    |   1 |
|     1 | B    |   2 |
|     1 | C    |   3 |
|     2 | D    |   1 |
|     2 | E    |   2 |
|     2 | F    |   3 |
|     3 | G    |   1 |
|     3 | H    |   2 |
|     3 | I    |   3 |
+-------+------+-----+

要了解如何创建集合,请查看此question/answer.

然后它很简单

ORDER BY tmp,group,name

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读