php

2020.09.18 09:50

order by cast

  • 관리자 2020.09.18 인기
  • 9,212
    0
숫자만 들어있는 컬럼이 있는데, 정렬을 해 보니,

1
 11
 12
 13
 2
 21

이런씩으로 정렬되는 경우를 본 적이 있을 것이다.
컬럼의 정의가 INT가 아닌 VARCHAR로 되어 있어서 그런 경우가 있다.
업무상 이렇게 데이터베이스를 설계할 경우도 있으니 잘잘못은 패스~ 하고

 이렇경우 어떻게 정렬하면 재대로 표현될까.. 하니...
MySQL에는 (CAST)연산자라는게 있다.

cast type의 종류는
binary
 char
 signed (부호있는 숫자)
date
 datetime
 time
 unsigned (부호없는 숫자)
등이 있다.

이용 방법은

 정렬할 때에는
select * from customers order by cast(customers_id as unsigned);

문자를 숫자로 변환할 때에는
select cast('1' as unsigned) as test
숫자를 문자로 변환할 때에는
select cast(2 as char(1)) as test

이렇게 이용하면 된다.


출처: https://dev114.tistory.com/295 [계약직]
  • 공유링크 복사
  • 이전글url파일 이름만 추출2020.09.18
  • 다음글콤마제거2020.09.18
  • 댓글목록

    등록된 댓글이 없습니다.