Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

숫자와 혼합된 문자열에 대한 MySQL의 영숫자 순서

<시간/>

값이 문자열이고 숫자가 오른쪽에 있는 테이블에 VARCHAR 열이 있다고 가정해 보겠습니다. 예를 들어 -

John1023
Carol9871
David9098

이제 전체 열에서 이러한 오른쪽 숫자를 기준으로 정렬하려는 경우를 고려하십시오. 이를 위해 ORDER BY RIGHT를 사용하십시오.

먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable757 (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ClientId varchar(100)
);
Query OK, 0 rows affected (0.53 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable757(ClientId) values('John1023');
Query OK, 1 row affected (0.41 sec)
mysql> insert into DemoTable757(ClientId) values('Carol9871');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable757(ClientId) values('David9098');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable757(ClientId) values('Adam9989');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable757(ClientId) values('Bob9789');
Query OK, 1 row affected (0.20 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable757;

그러면 다음과 같은 출력이 생성됩니다. -

+----+-----------+
| Id | ClientId  |
+----+-----------+
|  1 | John1023  |
|  2 | Carol9871 |
|  3 | David9098 |
|  4 | Adam9989  |
|  5 | Bob9789   |
+----+-----------+
5 rows in set (0.00 sec)

다음은 MySQL에서 영숫자 순서에 대한 쿼리입니다 -

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)