MySql 字段排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql 字段排序相关的知识,希望对你有一定的参考价值。

在数据库表中有以下字符数据,如:
13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2
现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样:
13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2
数据库表名:SellRecord;字段名:ListNumber;

参考技术A select *
from sellrecord
order by convert(int,substring(listnumber,1,2)) asc,convert (int,substring(listnumber,4,len(listnumber)-2)) asc本回答被提问者采纳
参考技术B mysql> SELECT
-> ListNumber,
-> SUBSTRING_INDEX(ListNumber,'-',1) A,
-> SUBSTRING_INDEX(ListNumber,'-',-1) B
-> FROM
-> SellRecord
-> ORDER BY
-> CAST(SUBSTRING_INDEX(ListNumber,'-',1) as SIGNED),
-> CAST(SUBSTRING_INDEX(ListNumber,'-', -1) as SIGNED);
+------------+------+------+
| ListNumber | A | B |
+------------+------+------+
| 13-1 | 13 | 1 |
| 13-2 | 13 | 2 |
| 13-3 | 13 | 3 |
| 13-10 | 13 | 10 |
| 13-11 | 13 | 11 |
| 13-15 | 13 | 15 |
| 13-18 | 13 | 18 |
| 13-100 | 13 | 100 |
| 13-108 | 13 | 108 |
| 14-1 | 14 | 1 |
| 14-2 | 14 | 2 |
+------------+------+------+
11 rows in set (0.00 sec)

mysql>

以上是关于MySql 字段排序的主要内容,如果未能解决你的问题,请参考以下文章

mysql根据某个字段内容排序

mysql字段排序数字在字母前面,字母也要按首字母排序

mysql 查询时 按照某个字段计算后的值 排序?

mysql 如何 多表连查 按时间到排序

MySql 字段排序

MySQL—— 排序