如何在 MySQL 中按字符串的某个部分排序?
mysqlmysqli database
您可以使用 ORDER BY SUBSTRING() 在 MySQL 中按字符串的某个部分排序。让我们首先创建一个表:
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: 当您想按升序对字符串的一部分进行 ORDER BY 时。
以下是查询。在这里,我们将在第 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: 当您想按降序对字符串的一部分进行 ORDER BY 时。以下是查询:
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)