关于MYSQL按值排序的问题

maskdata 2010-07-24 06:44:08
如下表数据
列名A|B
1,5
2,17
1,4
1,7
2,22
2,15
1,1
2,10
1,9
2,11


希望得到的结果是先按A列进行正排序
得到的结果是
1,5
1,4
1,7
1,1
1,9
2,17
2,22
2,15
2,10
2,11

之后.要通过A的值来进行排序.如果A=1则正排序.如果A=2则反排序.得到如下结果
1,1
1,4
1,5
1,7
1,9
2,22
2,17
2,15
2,11
2,10


不知道如何通过一条SQL语句来实现
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
maskdata 2010-07-24
  • 打赏
  • 举报
回复
非常感谢
ACMAIN_CHM 2010-07-24
  • 打赏
  • 举报
回复
mysql> select * from t_maskdata;
+------+------+
| a | b |
+------+------+
| 1 | 5 |
| 2 | 17 |
| 1 | 4 |
| 1 | 7 |
| 2 | 22 |
| 2 | 15 |
| 1 | 1 |
| 2 | 10 |
| 1 | 9 |
| 2 | 11 |
+------+------+
10 rows in set (0.02 sec)

mysql> select *
-> from t_maskdata
-> order by a,if(a=1,1,-1)*b;
+------+------+
| a | b |
+------+------+
| 1 | 1 |
| 1 | 4 |
| 1 | 5 |
| 1 | 7 |
| 1 | 9 |
| 2 | 22 |
| 2 | 17 |
| 2 | 15 |
| 2 | 11 |
| 2 | 10 |
+------+------+
10 rows in set (0.34 sec)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧