如何在 MySQL 中根据某个字符串部分排序?
您可以在 MySQL 中使用 ORDER BY SUBSTRING() 根据某个字符串部分排序。让我们首先创建一个表。
mysql> create table DemoTable (UserId varchar(200)); Query OK, 0 rows affected (0.68 sec)
以下是使用 insert 命令向表中插入记录的查询。
mysql> insert into DemoTable values('USER_1234'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values('USER_John'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values('USER_Sam'); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values('USER_Carol'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('USER_Bob'); Query OK, 1 row affected (0.14 sec)
以下是使用 select 命令从表中显示记录的查询。
mysql> select *from DemoTable;
这将生成以下输出。
+------------+ | UserId | +------------+ | USER_1234 | | USER_John | | USER_Sam | | USER_Carol | | USER_Bob | +------------+ 5 rows in set (0.00 sec)
案例 1:当您希望按升序对字符串的某个部分排序时。
以下是查询。在此,我们将对从第 4 个字符开始的字符串的某个部分进行排序。
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:当您希望按降序对字符串的某个部分排序时。以下是查询。
mysql> select *from DemoTable order by substring(UserId,4) desc;
这会产生以下输出。在此,我们将对从第 4 个字符开始的字符串的某个部分进行排序。
+------------+ | UserId | +------------+ | USER_Sam | | USER_John | | USER_Carol | | USER_Bob | | USER_1234 | +------------+ 5 rows in set (0.00 sec)
广告