테스트 사이트 - 개발 중인 베타 버전입니다

테이블 숫자 정렬방법 질문합니다. 채택완료

그누보드에서 데이터베이스내용을 테이블로 가져와서 정렬해서 쓰는중인데

아래와같은 숫자는 어떻게 정렬해야되는지 힌트를 얻을 수 있을까요 ..? ㅠㅠ

 

200~439

490~520

5900~6100

21000~22000

 

현재 이런식으로 정렬하게 되면

2가 21000이 2번째로 오게 됩니다.. ㅠㅠ

자꾸 질문만 해서 죄송합니다.

 

고수님들 힌트좀 부탁드려요!

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

칼럼 하나에 값이 200~439 이렇게 들어있다는 말씀이신가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

네 칼럼하나에 값이 200~439 이렇게 들어가있습니다 !
SELECT * FROM TABLE ORDER BY SUBSTRING_INDEX(COLUMN, "~", 1) + 1
mysql이라서 형변환은 안 하고 그냥 저렇게 +1만 하면 지가 알아서 숫자로 변환합니다.
답글 감사합니다 ㅠㅠ
헌데 $sql = "SELECT * FROM g5_echomicro WHERE bcat='".$bcat_str."' AND scat='".$scat_str."' AND frequency_gbn='1' ORDER BY ".$order." ".$by."";

뒤에 ".$order." ".$by."";이부분을 지우고 "(frequency(해당 칼럼 이름, "~", 1) + 1""; 를 넣었는데 에러가 뜹니다 ㅠㅠ
frequency 이게 뭔가요?
괄호가 붙은 걸 보면 사용자 함순가요?

$sql = "SELECT * FROM g5_echomicro WHERE bcat='".$bcat_str."' AND scat='".$scat_str."' AND frequency_gbn='1' ORDER BY "(frequency(해당 칼럼 이름, "~", 1) + 1"";
이렇게 했다는 말씀이신가요?
쿼리문을 어떻게 하셨는지 알 수가 없네요.
그리고 substring_index는 전혀 안 쓰셨네요.
감사합니다 ㅠㅠㅠ .. 덕분에 골머리앓고있던 문제를 해결했습니다 !! ㅠㅠ
$sql = "SELECT * FROM TableName WHERE bcat = '1st' AND scat = '2st' AND startNum >= '0' AND endNum <= '500' ORDER BY SUBSTRING_INDEX(해당칼럼, '~', 1)+1 ".$by."";

정말 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고