mysql cast 형변환에 대해서요~

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
mysql cast 형변환에 대해서요~

QA

mysql cast 형변환에 대해서요~

본문

varchar 데이터 4,564 이런 형식의 콤마가 찍혀있는 금액 데이터 인데요

이것을 작은 순서부터 출력시켜 주기위해서

형변환을 했어요.

 

 $sql = " select * from $tmp_write_table where wr_11 LIKE '%fore%' order by cast(wr_5 as unsigned) asc limit 0, $rows ";

 

요렇게 말이지요.

 

그런데 정렬을 보니 형변환이 된듯했지만 자세히 보니 아니더군요.

정렬이 엉망. 콤마 이후의 숫자들이 오름차순 정렬이 안되고 있는듯 하더라고요.

 

그래서 추측컨데 이게 형변환을 해줄때 콤마 뒤에 있는 숫자들은 형변환에 문제가 있는 것이 아닌지

싶어요.

즉 이 컴마에 문제가....아닌가요?

 

암튼 가격이 낮은 순으로 정렬을 시켜주고 싶은데

제대로 가격 낮은 순으로 정렬시켜줄 수 있는 방법이 없을까요?

계속 뒤져봤는데 안나오네요~ㅠㅠ

 

한 수 가르침을 부탁드립니다~

 

 

이 질문에 댓글 쓰기 :

답변 1

확인은 못해봤습니다만 문자열이 숫자로만 된게 아니라 안에 컴마가 있으면 형변환이 제대로 안됐을 수 있습니다.

cast(replace(wr_5, ',', '') as unsigned)​ 이렇게 해보시는건 어떨까요? 

다만 데이터가 많다면 db부하가 좀 걸릴지도;;;

이런경우는 차라리 varchar보다는 unsigned int를 사용하시고 출력할때 number_format()을 사용하시는게 훨씬 나을듯합니다;

답변을 작성하시기 전에 로그인 해주세요.
전체 124,352 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT