SELECT * FROM TABLE ORDER BY `sortNum` 이렇게 했을 때 저렇게 결과가 나왔습니다. 원래대로라면 1, 2, 3... 이렇게 되어야 하는데 말이지요. 해당 칼럼 타입을 보면 char, varchar 이런 걸로 되어 있을 겁니다. 가장 좋은 방법은 해당 칼럼 타입을 int 혹은 tinyint 이런 걸로 바꾸면 됩니다. 그런데 칼럼 타입 변경을 마음대로 할 수 없는 경우엔 형 변환을 하면 됩니다. SELECT * FROM TABLE ORDER BY CAST(`sortNum` AS unsigned)
정렬 순서가 2, 3, 1, 4 이 순으로 되길 바랍니다. SELECT * FROM #table ORDER BY FIELD(`parent`, 2, 3, 1, 4) MySQL 내장 함수인 FIELD를 사용하시면 됩니다. FIELD(정렬 기준인 칼럼명, 값1, 값2, 값3, 값4)
parent가 1이면서 1000 초과일 경우 1 parent가 2이면서 1000 초과일 경우 2 나머지는 그냥 정렬 SELECT * FROM #table ORDER BY CASE WHEN (`parent` = 1 AND `cost` > 1000) THEN 1 WHEN (`parent` = 2 AND `cost` > 1000) THEN 2 END DESC
pno : project 테이블의 no mno : member 테이블의 no 클라이언트가 이런 요구를 했습니다. 프로젝트별로 정렬을 하되 여기에서 글을 쓴 사람이 있는 값부터 우선 정렬을 하고 없는 사람들은 그냥 no를 기준으로 정렬을 하라고... 21 / 5532 3 / 8026 20 / 8127 1 / 8155 4 / 0 5 / 0 ... 생략 ... 그러면 결과는 위와 같겠네요. 보통은 `pno` DESC, `mno` ASC 이런 식으로 하면 되겠지만 칼럼 값이 0인 애들이 있습니다. 내림차순이면 상관이 없는데 하필이면 오름차순이네요. 그러면 0인 애들이 제일 상단에 가게 됩니다. mno 칼럼 값이 0인 애들은 1000000000 이 값을 넣어 버리고 no 칼럼을 기준으로 정렬을 하면 됩니다. SE..
칼럼 하나에서 여러 단어로 검색할 때 LIKE를 여러 번 써야 하는 수가 있습니다. SELECT * FROM #table WHERE `column` LIKE '%aaa%' OR `column` LIKE '%bbb%` OR `column` LIKE `%ccc%' 너무 무식하게 길어집니다. 이런 때 REGEXP 연산자를 써서 SELECT * FROM #table WHERE `column` REGEXP 'aaa|bbb|ccc' 이렇게 줄여서 쓰면 됩니다. 반대의 경우도 있습니다. 칼럼 여러 개에 하나의 단어로 검색할 때입니다. 이런 때는 아래처럼 쿼리를 씁니다. SELECT * FROM #table WHERE `column1` LIKE '%aaa%' OR `column2` LIKE '%aaa%` OR `col..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.