반응형
mysql order varchar 필드(정수)
테이블에 바하 필드가 있는데 정렬하려고 합니다.하지만 이 필드를 정수로 처리해야 합니다.즉, 텍스트로 정렬하면 "19,2,20"이지만 올바른 "2,19,20" 주문을 받고 싶습니다.
누가 나를 도와줄 수 있나요?
어떻게든 쿼리를 실행할 수 없었습니다.CAST
나는 항상 받고 있었습니다.Error Code: 1064 near "DECIMAL"
(또는 내가 선택한 다른 숫자 유형).그래서 다른 방법을 찾아냈어요varchar
숫자:
SELECT *
FROM mytable
ORDER BY ABS(mycol)
제 경우에는 좀 더 단순하고 효과적입니다.
SELECT *
FROM mytable
ORDER BY
CAST(mycol AS DECIMAL)
여기 해결책이 있습니다.
SELECT * FROM MyTable ORDER BY ABS(MyCol);
다른 모든 응답은 다음을 사용합니다.ABS
이는 정수가 양수라고 가정할 때 값을 절대(양) 값으로 변환합니다.더 나은 해결책은 사용하는 것입니다.* 1
:
SELECT * FROM mytable ORDER BY mycol * 1
이는 음수를 양수로 주조하는 것을 방지하기 위한 것입니다.영감을 받은 사람: mysql 정렬 문자열 번호
넌 할 수 있다.ABS()
이를 위하여ABS()는 다음을 반환하는 수학적 함수입니다.absolute (positive) value of the specified expression
그래서 질문은 이런 것이 될 것입니다.
SELECT * FROM MyTable ORDER BY ABS(MyCol);
필요에 따라 이 코드를 사용하여 varchar 필드를 주문할 수 있습니다.
SELECT * FROM mytable ORDER BY ABS(mycol)
언급URL : https://stackoverflow.com/questions/1625166/mysql-order-varchar-field-as-integer
반응형
'programing' 카테고리의 다른 글
데이터베이스에 열을 추가할 때 오류 발생 (0) | 2023.09.02 |
---|---|
테스트를 위해 Forge 서버에 두 번째 Maria DB를 생성하시겠습니까? (0) | 2023.09.02 |
클래스캐스트 예외:리스트 대신 리스트를 반환하는 RestTemplate (0) | 2023.09.02 |
Oracle을 사용한 유닛 테스트 (0) | 2023.09.02 |
Windows에 설치하지 않고 MySQL 실행/시작 (0) | 2023.09.02 |