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

MySQL에서 열로 레코드를 정렬하고 끝에 빈 레코드를 배치하는 방법은 무엇입니까?

<시간/>

열로 정렬하고 끝에 빈 레코드를 배치하려면 ORDER By를 사용하고 MySQL에서 "is null"을 사용합니다. 구문은 다음과 같습니다 -

select *from yourTableName order by if(yourColumName = ’ ’ or yourColumName is null,1,0),yourColumnName;

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

mysql> create table emptyCellsAtEnd
   −> (
   −> ProductId varchar(100)
   −> );
Query OK, 0 rows affected (0.65 sec)

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

mysql> insert into emptyCellsAtEnd values('');
Query OK, 1 row affected (0.23 sec)

mysql> insert into emptyCellsAtEnd values('P-1');
Query OK, 1 row affected (0.21 sec)

mysql> insert into emptyCellsAtEnd values('P-2');
Query OK, 1 row affected (0.14 sec)

mysql> insert into emptyCellsAtEnd values('');
Query OK, 1 row affected (0.15 sec)

mysql> insert into emptyCellsAtEnd values('P-3');
Query OK, 1 row affected (0.18 sec)

mysql> insert into emptyCellsAtEnd values('P-4');
Query OK, 1 row affected (0.09 sec)

mysql> insert into emptyCellsAtEnd values('P-9');
Query OK, 1 row affected (0.11 sec)

mysql> insert into emptyCellsAtEnd values('');
Query OK, 1 row affected (0.15 sec)

mysql> insert into emptyCellsAtEnd values('P-8');
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from emptyCellsAtEnd;

다음은 출력입니다 -

+-----------+
| ProductId |
+-----------+
|           |  
| P-1       |
| P-2       |
|           |
| P-3       |
| P-4       |
| P-9       |
|           |
| P-8       |
+-----------+
9 rows in set (0.00 sec)

이제 마지막으로 빈 셀을 배치하기 위해 처음에 논의한 쿼리를 구현할 수 있습니다. 마지막에 빈 셀을 배치하는 쿼리는 다음과 같습니다. -

mysql> select *from emptyCellsAtEnd
−> order by if(ProductId = '' or ProductId is null,1,0),ProductId;

다음은 출력입니다 -

+-----------+
| ProductId |
+-----------+
| P-1       |
| P-2       |
| P-3       |
| P-4       |
| P-8       |
| P-9       |
|           |
|           |
|           |
+-----------+
9 rows in set (0.00 sec)