IT

MySQL: 필드별 주문, 끝에 빈 셀 배치

itgroup 2022. 10. 28. 20:41
반응형

MySQL: 필드별 주문, 끝에 빈 셀 배치

여러 제품이 포함된 MySQL 테이블을 가지고 있습니다.표를 1개의 특정 컬럼으로 정렬합니다(대부분의 값은 1st, 2nd 등 숫자로 시작합니다).그러나 이 열에 대한 값이 없는 레코드가 있기 때문에 정렬하려고 하면 테이블이 자동으로 빈 행을 먼저 배치합니다.

행을 오름차순 정렬하는 방법을 찾고 있는데, 정렬된 레코드의 끝에 빈 레코드만 삽입하면 됩니까?

어떤 도움이라도 감사히 받겠습니다!

select * from table
order by if(field = '' or field is null,1,0),field

이것은 가장 효과적인 방법 중 하나이다.

ASC 주문

SELECT * FROM user ORDER BY name IS NULL, name ASC

예상 결과:

+----+--------+------------+
| id |  name  | date_login |
+----+--------+------------+
|  3 |  david | 2016-12-24 |
|  2 |  john  | NULL       |
|  4 |  zayne | 2017-03-02 |
|  1 |  NULL  | 2017-03-12 |

DESC 순서

SELECT * FROM user ORDER BY name IS NULL, name DESC

예상 결과:

+----+--------+------------+
| id |  name  | date_login |
+----+--------+------------+
|  4 |  zayne | 2017-03-02 |
|  2 |  john  | NULL       |
|  3 |  david | 2016-12-24 |
|  1 |  NULL  | 2017-03-12 |

언급URL : https://stackoverflow.com/questions/5825804/mysql-order-by-field-placing-empty-cells-at-end

반응형