将MySQL表列值按其值的一部分排序?

您可以RIGHT()为此使用ORDER BY 。让我们首先创建一个表-

mysql> create table DemoTable
   (
   UserId varchar(100)
   );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable values('User1234');

mysql> insert into DemoTable values('User9874');

mysql> insert into DemoTable values('User9994');

mysql> insert into DemoTable values('User1211');

mysql> insert into DemoTable values('User1012');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable;

这将产生以下输出-

+----------+
| UserId |
+----------+
| User1234 |
| User9874 |
| User9994 |
| User1211 |
| User1012 |
+----------+
5 rows in set (0.00 sec)

情况1-如果您希望结果按升序排列。

以下是按MySQL表列值的一部分排序的查询。

mysql> select *from DemoTable ORDER BY RIGHT(UserId, 4);

这将产生以下输出-

+----------+
| UserId |
+----------+
| User1012 |
| User1211 |
| User1234 |
| User9874 |
| User9994 |
+----------+
5 rows in set (0.00 sec)

情况2-如果您希望结果按降序排列。

以下是对MySQL表列值按其值的一部分进行排序的查询-

mysql> select *from DemoTable ORDER BY RIGHT(UserId, 4) DESC;

这将产生以下输出-

+----------+
| UserId |
+----------+
| User9994 |
| User9874 |
| User1234 |
| User1211 |
| User1012 |
+----------+
5 rows in set (0.00 sec)