2009-09-04 3 views
0

mysql 테이블에서 é ou è를 발견해야합니다.mysql에서 accentuated char을 검색하십시오.

첫 번째 시도 : SELECT "LéL"like "% é %"; 이 작동하지 않습니다 : e 또는 é를 포함하는 단어를 반환합니다.

는 또한합니다 (문자 L 사용) 결과없이 정규 표현식으로 시도 :

SELECT "Lbc" REGEXP ".*L.*"; -- works : it finds L in the string LBC 

SELECT "Lbc" REGEXP ".*\u4C.*"; -- doesn't work : can't find the hexadecimal equivalent of L in the string LBC. 

내가 \을 테스트하고 싶어 유 플러스 진수 검색 ... 나는 또한 더블없이 문서에 했나요로 탈출 시도 변경.

정규 표현식 검색은 mysql에서 실제로 제한적인 것으로 보입니다. http://dev.mysql.com/doc/refman/4.1/en/regexp.html에 관한 \ u과 관련된 문서를 찾지 못했습니다.

저는 MySQL 4.1을 사용하고 있습니다.

4에 존재하지 않는 mysql 5에 해결책이 있다면, 그것에 대해 알고 싶습니다. 도 4.1에서 작동합니다 -

+0

왜 16 진수 코드 대신 실제 문자를 보낼 수 있습니까? – longneck

+0

글쎄 내가 저주받을거야 ... 그게 내가 시도한 첫 번째 ...하지만 이제는 내가 당신의 코멘트를 읽은 후 다시 시도 ... 그것은 작동합니다. –

+0

이 주석을 대답으로 바꾸고 끝내자. –

답변

1
SELECT 'LéL' LIKE '%é%' COLLATE utf8_bin; 
/* latin1_bin if your data is in latin1, etc. */ 
1 

SELECT 'LéL' LIKE '%e%' COLLATE utf8_bin; 
0 

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like와 MySQL 5.1에서 테스트

http://dev.mysql.com/doc/refman/5.0/en/charset-binary-collations.html를 참조하십시오.

+0

+1 좋은 답변이지만 Longneck은 간단한 해결책이 있습니다. (그를 대답으로 자신의 의견을 게시 기다리고) –

+0

.... 너무 나빴어. 나는 당신의 해결책을 받아들입니다. –

관련 문제