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

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

<시간/>

'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)

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