MySQL中字母数字排序,用于混合数字的字符串
假设您在表中有一个VARCHAR列,其值是字符串,数字在右侧。例如-
John1023 Carol9871 David9098
现在,考虑您要基于整列中的这些右侧数字进行排序。为此,请使用ORDERBYRIGHT。
让我们首先创建一个表-
create table DemoTable757 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientId varchar(100) );
使用插入命令在表中插入一些记录-
insert into DemoTable757(ClientId) values('John1023'); insert into DemoTable757(ClientId) values('Carol9871'); insert into DemoTable757(ClientId) values('David9098'); insert into DemoTable757(ClientId) values('Adam9989'); insert into DemoTable757(ClientId) values('Bob9789');
使用select语句显示表中的所有记录-
select *from DemoTable757;
这将产生以下输出-
+----+-----------+ | Id | ClientId | +----+-----------+ | 1 | John1023 | | 2 | Carol9871 | | 3 | David9098 | | 4 | Adam9989 | | 5 | Bob9789 | +----+-----------+ 5 rows in set (0.00 sec)
以下是在MySQL中查询字母数字顺序-
select Id,ClientId from DemoTable757 order by right(ClientId,4);
这将产生以下输出-
+----+-----------+ | Id | ClientId | +----+-----------+ | 1 | John1023 | | 3 | David9098 | | 5 | Bob9789 | | 2 | Carol9871 | | 4 | Adam9989 | +----+-----------+ 5 rows in set (0.00 sec)