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

MySQL에서 마지막 2개의 문자열을 ORDER BY하는 방법은 무엇입니까?

<시간/>

ORDER BY RIGHT()를 사용하여 마지막 2개의 문자열을 ORDER BY할 수 있습니다.

구문은 다음과 같습니다.

select yourColumnName from yourTableName ORDER BY RIGHT(yourColumnName , 2);
에서 yourColumnName 선택

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table OrderByLast2CharactersDemo
   -> (
   -> CustomerId varchar(20),
   -> CustomerName varchar(20)
   -> );
Query OK, 0 rows affected (0.58 sec)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into OrderByLast2CharactersDemo(CustomerId,CustomerName) values('John-98','John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into OrderByLast2CharactersDemo(CustomerId,CustomerName) values('Carol-91','Carol');
Query OK, 1 row affected (0.21 sec)
mysql> insert into OrderByLast2CharactersDemo(CustomerId,CustomerName) values('Bob-99','Bob');
Query OK, 1 row affected (0.22 sec)
mysql> insert into OrderByLast2CharactersDemo(CustomerId,CustomerName) values('David-67','David');
Query OK, 1 row affected (0.15 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from OrderByLast2CharactersDemo;

다음은 출력입니다.

+------------+--------------+
| CustomerId | CustomerName |
+------------+--------------+
| John-98    | John         |
| Carol-91   | Carol        |
| Bob-99     | Bob          |
| David-67   | David        |
+------------+--------------+
4 rows in set (0.00 sec)

다음은 마지막 2자 문자열로 정렬하는 쿼리입니다.

사례 1 :결과는 오름차순입니다.

쿼리는 다음과 같습니다 -

mysql> select CustomerId from OrderByLast2CharactersDemo ORDER BY RIGHT(CustomerId , 2);
에서 CustomerId 선택

다음은 출력입니다.

+------------+
| CustomerId |
+------------+
| David-67   |
| Carol-91   |
| John-98    |
| Bob-99     |
+------------+
4 rows in set (0.01 sec)

사례 2 결과는 내림차순입니다.

쿼리는 다음과 같습니다 -

mysql> select CustomerId from OrderByLast2CharactersDemo ORDER BY RIGHT(CustomerId , 2) DESC;

다음은 출력입니다.

+------------+
| CustomerId |
+------------+
| Bob-99     |
| John-98    |
| Carol-91   |
| David-67   |
+------------+
4 rows in set (0.00 sec)