'LPAD(lower(column_name))'는 MySQL에서 varchar 필드를 숫자로 정렬하는 데 사용됩니다. 예를 들어 보겠습니다.
먼저 테이블을 생성하겠습니다. CREATE 명령은 테이블을 생성하는 데 사용됩니다.
mysql> create table SortingvarcharDemo -> ( -> List varchar(10) -> ); Query OK, 0 rows affected (0.82 sec)
레코드는 INSERT 명령을 사용하여 삽입됩니다.
mysql> insert into SortingvarcharDemo values("99"); Query OK, 1 row affected (0.12 sec) mysql> insert into SortingvarcharDemo values("9"); Query OK, 1 row affected (0.17 sec) mysql> insert into SortingvarcharDemo values("199"); Query OK, 1 row affected (0.19 sec) mysql> insert into SortingvarcharDemo values("1"); Query OK, 1 row affected (0.11 sec) mysql> insert into SortingvarcharDemo values("999"); Query OK, 1 row affected (0.10 sec) mysql> insert into SortingvarcharDemo values("78"); Query OK, 1 row affected (0.17 sec)
레코드를 표시하려면 선택 명령을 사용하십시오.
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)
위의 결과는 오름차순으로 정렬됩니다.