您可以使用ORDER BYSUBSTRING()
在MySQL中按字符串的某些部分进行排序。让我们首先创建一个表:
mysql> create table DemoTable (UserId varchar(200));
以下是使用insert命令在表中插入记录的查询:
mysql> insert into DemoTable values('USER_1234'); mysql> insert into DemoTable values('USER_John'); mysql> insert into DemoTable values('USER_Sam'); mysql> insert into DemoTable values('USER_Carol'); mysql> insert into DemoTable values('USER_Bob');
以下是使用select命令显示表中记录的查询:
mysql> select *from DemoTable;
这将产生以下输出:
+------------+ | UserId | +------------+ | USER_1234 | | USER_John | | USER_Sam | | USER_Carol | | USER_Bob | +------------+ 5 rows in set (0.00 sec)
情况1:当您要按升序对字符串的一部分进行ORDER BY时。
以下是查询。在这里,我们将在第四个字符之后对字符串的某些部分进行排序:
mysql> select *from DemoTable order by substring(UserId,4) asc;
这将产生以下输出
+------------+ | UserId | +------------+ | USER_1234 | | USER_Bob | | USER_Carol | | USER_John | | USER_Sam | +------------+ 5 rows in set (0.00 sec)
情况2:当您要按降序对字符串的一部分进行ORDER BY时。以下是查询:
mysql> select *from DemoTable order by substring(UserId,4) desc;
这将产生以下输出。在这里,我们将在第四个字符之后对字符串的某些部分进行排序:
+------------+ | UserId | +------------+ | USER_Sam | | USER_John | | USER_Carol | | USER_Bob | | USER_1234 | +------------+ 5 rows in set (0.00 sec)