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

MySQL 정렬 문자열 번호?

<시간/>

문자열 번호를 정렬하려면 MySQL의 CAST() 함수를 사용하십시오. 구문은 다음과 같습니다 -

SELECT *FROM yourTableName ORDER BY (yourColumnName as Decimal(integerValue,integerValueAfterDecimalPoint)) desc;

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

mysql> create table SortingStringDemo
-> (
-> Amount varchar(10)
-> );
Query OK, 0 rows affected (0.91 sec)

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

mysql> insert into SortingStringDemo values('12.34');
Query OK, 1 row affected (0.21 sec)

mysql> insert into SortingStringDemo values('124.50');
Query OK, 1 row affected (0.56 sec)

mysql> insert into SortingStringDemo values('9.59');
Query OK, 1 row affected (0.20 sec)

mysql> insert into SortingStringDemo values('150.68');
Query OK, 1 row affected (0.17 sec)

mysql> insert into SortingStringDemo values('600.54');
Query OK, 1 row affected (0.11 sec)

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

mysql> select *from SortingStringDemo;

다음은 출력입니다.

+--------+
| Amount |
+--------+
| 12.34  |
| 124.50 |
| 9.59   |
| 150.68 |
| 600.54 |
+--------+
5 rows in set (0.00 sec)

다음은 문자열 번호를 내림차순으로 정렬하는 쿼리입니다.

mysql> select *from SortingStringDemo order by cast(Amount as Decimal(6,2)) desc;

다음은 출력입니다.

+--------+
| Amount |
+--------+
| 600.54 |
| 150.68 |
| 124.50 |
| 12.34  |
| 9.59   |
+--------+
5 rows in set (0.00 sec)