2010-07-07 5 views
1

데이터 정렬이 utf8/utf8_bin 인 데이터베이스가 있습니다. DB에는 악센트 문자 (카자르 등)가있는 아랍어 텍스트가 있습니다. 나는 강세 문자없이 텍스트를 검색하고 싶다.아랍어 텍스트에서 액센트 문자 제거

내가이 무슨 짓을, 나는 필드 1의 자리에 정적 UTF 아랍어 텍스트를 쓸 때

WHERE replace(field1,0x[CODE],'') like '%[arabic text]%' --- where [CODE] is the accent char. 

이 잘 작동하고 ... 쿼리 '처럼'썼다. 그러나 데이터베이스 필드에서 실행될 때 대체되지 않습니다.

db 필드는 latin1 인코딩을 가질 수 있습니다. 이 문제를 어떻게 해결할 수 있습니까?

감사합니다.

답변

2

utf8_bin은 이진 데이터 정렬입니다. 문자를 비교할 때 매우 리터럴하며 엄격합니다.

utf8_general_ci 더 관대하고 자신의 "기본"버전으로 모음 변이와 강세를 정규화 :

Ä =>A

Ü =>U 등 내가 그렇게하기 전에 아랍어로 일한 적이있다

그 액센트에도 적용되는지는 잘 모르겠지만 그렇게 기대하겠습니다.

일시적이 같은 관대 한 정렬 사용할 수 있어야합니다 :

WHERE field1 like '%[arabic text]%' COLLATE utf8_general_ci;