본문 바로가기
MySql

MySQL CAST 연산자를 사용하여 VARCHAR 열을 FLOAT로 정렬하면 MySQL에서 작동하지 않습니다.

by 베이스 공부 2021. 2. 9.
반응형

float로 캐스팅 된 varchar 열을 정렬하는 방법을 찾을 수 없습니다. 내 SQL 요청은 다음과 같습니다.

SELECT guid, number FROM table ORDER BY 'CAST(number AS FLOAT) DESC'

"숫자"열은 다음과 같이 정의됩니다.

number  varchar(20) ascii_general_ci

내 테스트를 위해이 열에 정의 된 값은 다음과 같습니다.

0.00
200.00
20.00
100.00

MySQL은 CAST 연산자를 완전히 무시하고 guid로 열을 정렬합니다.

MySQL에 버그가 있습니까? 아니면 제가 뭘 잘못 했나요?

 

해결 방법

 

이 트릭을 시도하십시오 (문자열을 숫자로 정렬하는 데 도움이 됨)-

SELECT guid, number FROM table ORDER BY number * 1 DESC

MySQL이 문자열을 숫자로 변환하는 데 도움이됩니다.

또 다른 해결책-

...CAST(value as DECIMAL(10,5))

 

참조 페이지 https://stackoverflow.com/questions/10633695

 

 

반응형

댓글