如何在 MySQL 中按字符串的某个部分排序?
mysqlmysqli database更新于 2025/5/12 4:28:17
您可以使用 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)
相关文章
有用资源
mysql 参考教程 - 该教程包含有关 mysql 的更多信息:https://www.cainiaomax.com/mysql/
打印
下一节:解决 MySQL 错误 1064 (42000):You have an error in your syntax?(您的语法有错误) ❯❮ 上一节:使用 Java JDBC 对 MySQL 进行"count"查询的返回类型是什么?

