English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL에서 varchar 필드를 숫자로 정렬?

'LPAD(lower(column_name))'은 MySQL에서 varchar 필드에 숫자 정렬을 위해 사용됩니다. 예제를 보겠습니다.

먼저, 테이블을 생성하겠습니다. CREATE 명령어는 테이블을 생성하는 데 사용됩니다.

mysql> create table SortingvarcharDemo
   -> (
   -> List varchar(10)
   -> );

데이터는 INSERT 명령의 도움으로 삽입됩니다.

mysql> insert into SortingvarcharDemo values("99");
mysql> insert into SortingvarcharDemo values("9");
mysql> insert into SortingvarcharDemo values("199");
mysql> insert into SortingvarcharDemo values("1");
mysql> insert into SortingvarcharDemo values("999");
mysql> insert into SortingvarcharDemo values("78");

데이터를 표시하려면 select 명령을 사용하십시오.

mysql> select *from SortingvarcharDemo;

이는 출력입니다.

+------+
| List |
+------+
| 99   |
| 9    |
| 199  |
| 1    |
| 999  |
| 78   |
+------+
6 rows in set (0.05 sec)

위 출력에서, 목록은 정렬되지 않았습니다-그것은 오름차순도 내림차순도 아닙니다.

오름차순 또는 내림차순으로 숫자 정렬하려면 다음 문법을 사용하십시오.

SELECT * FROM yourTableName ORDER BY LPAD(lower(Column_name), value1,values2) asc;

다음은 쿼리입니다.

mysql> SELECT * FROM SortingvarcharDemo ORDER BY LPAD(lower(List), 6,0) asc;

이는 출력입니다.

+------+
| List |
+------+
| 1    |
| 9    |
| 78   |
| 99   |
| 199  |
| 999  |
+------+
6 rows in set (0.17 sec)

위에서, 결과는 오름차순으로 정렬됩니다.