반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL과 JDBC가 정말 느립니다. 이유를 모르겠습니다. (0) | 2021.02.10 |
---|---|
MySQL 외래 키를 삭제할 수 없습니다 (0) | 2021.02.09 |
MySQL wpdb에서 IN ()을 사용하려고 할 때 문제 (0) | 2021.02.09 |
MySQL 대량 데이터를 한 번에 데이터베이스에 삽입하는 방법은 무엇입니까? (0) | 2021.02.09 |
MySQL 서버가 사라졌습니다 (PHP) (0) | 2021.02.09 |
댓글