2012-12-05 1 views
1

필드 col2가 있고 caSEINseNSItiVe 값을 갖고 있다고합시다. 아래 쿼리를 실행해도 col2 = CD가되지 않습니다. 나는 LIKE와 LIKE BINARY를 시도했다.심지어는 COLLATE가있는 경우에도 mysql 대소 문자를 구분하지 않습니다. utf8_general_ci

SELECT col1, 
CASE 
    WHEN col2 = 'CASEINSENSITIVE' THEN 'CD' 
    ELSE col2 
END 
FROM Table COLLATE utf8_general_ci 

표의 조합은 utf8_bin입니다. 설정을 변경할 수 없습니다. utf8_bin을 기본값으로 유지하면서 보고서를 만들 때 utf8_general_ci로 전환해야합니다.

제안 사항? 그래서 같은

답변

0

사용은 UPPER 또는 LOWER 함수들이 그냥 :

SELECT col1, 
CASE 
    WHEN UPPER(col2) = 'CASEINSENSITIVE' THEN 'CD' 
    WHEN UPPER(col2) = 'ANYUPPERTEXT' THEN 'UP' 
    WHEN LOWER(col2) = 'somelowertext' THEN 'LW' 
    WHEN UPPER(col2) = UPPER('anytext that will also be UPPERed') THEN '??' 
    ELSE col2 
END 
FROM Table