2013-08-09 2 views
0
SELECT DISTINCT city, street, street_type, house 
FROM table 
WHERE street LIKE '%Ololo%' 
ORDER BY city, street, street_type, CHAR_LENGTH(house), house 

CHAR_LENGTH(house)은 ORDER BY의 네 번째 위치에 배치하면 정렬되지 않습니다. 1.30 위치에 놓여있는 경우에만 CHAR_LENGTH(house)으로 시작합니다. city, street, street_type에는 모두이 예에서 동일한 데이터가 들어 있습니다. ORDER BY의 첫 번째 열을 CONCAT하려고했으나 도움이되지 않습니다. 이러한 정렬을 깨고있다 : house 그것은 city, street, street_type 실제로 다른 것을 의미한다, 나는 그렇지 후행 공백Mysql : ORDER BY 절의 최대 열 수?

을 제거 CHAR_LENGTH(TRIM(house))을 시도, housechar입니다 CHAR_LENGTH(house), house

+0

mysql이 반환하는 오류는 무엇입니까? –

+0

죄송합니다. 수정 됨. 사용 된 모든 열은 city, street, street_type입니다. – michaelloop

+0

오류가 없습니다. 잘못 정렬합니다. 작은 것, 큰 것, 작은 것. 모두 varchars입니다. 집에는 숯이 들어 있습니다. – michaelloop

답변

0

경우 사용 이유 그 문자가 포함되어 있습니다. 다시 짧게 돌아 가면 이러한 변경 중 하나가 발생합니다.

+0

도움이되지 않습니다. 세 번째 위치에 놓으면 트림과 함께 작동합니다. – michaelloop

+0

@michaelloop : 제 2 건이 적용됩니다. city, street, street_type은 실제로 다릅니다. – gbn

+0

네, 맞습니다. 그냥'DISTINCT street_type'을 만들었고 두 개의 street_type을 제공한다는 것을 알았지 만 그들은 똑같이 보입니다. 이제 저는 2 단어의 차이점을 깨닫려고합니다. 공백이 없어야합니다. 같은 문자들. 고맙습니다. – michaelloop