programing

mysql order varchar 필드(정수)

testmans 2023. 9. 2. 08:05
반응형

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

반응형