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

MySQL에서 문자열의 특정 부분으로 주문하는 방법은 무엇입니까?

<시간/>

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)