이 나는 테이블 내가 쿼리 실행하려고 연락처Postgresql select 쿼리에서 모든 상대 억양을 찾는 방법?
id | name
----+------------------
44 | Aarón
라는 이름의 한 : 그것은 내가 ' 오 '를 검색하는 것을 시도하고있다 (0 rows)
을 반환
select id,name from contacts where name ilike 'Aaro%';
및 결과에 'o'과 같은 액센트가 포함될 것으로 예상됩니다. 'ó '. 내가 검색 및 stackoverlfowing 몇 가지 했어 로케일을 사용하여 그 데이터 정렬을 설치해야합니다. 그래서 나는 PostgreSQL 데이터베이스의 데이터 정렬을 설치하려고 한 그 이후
sudo locale-gen --no-archive de_DE.utf-8
에 의해 리눅스의 조합을 설치했습니다.
create collation de (LOCALE='de_DE.utf-8');
데이터 정렬이 성공적으로 생성되었습니다. select * from pg_collation;을 사용하여이 정렬을 나열하려고했습니다. 그리고 거기에있다.
내가 쿼리에 의해 모든 상대 강세 'O'의 결과를 얻기 위해 다시 노력이 모든 일을 후 :
select id,name from contacts where name ilike 'Aaro%';
을하지만 다시 난 (0 rows)
가 Ultimatly 내가 때 기록 "아론"를 원하는 있어요 I 위의 쿼리를 실행하십시오.
미리 감사드립니다.
http://dba.stackexchange.com/questions/124695/postgresql-translate-special- : 당신이 합자없이 문자의 작은 집합을 다루는 경우에 당신은 양자 택일 폴란드어 이와 같은 간단한 기능을 사용할 수 있습니다 문자를 입력하거나 직접 정의 할 수 있습니다. –
데이터 정렬은 등호 검사 (예 : 'LIKE', 'ILIKE', '~'등)를 변경하지 않고 데이터를 다른 규칙 집합으로 정렬하는 데 도움을줍니다 (일부 언어는 악센트 부호가있는 문자 순서 지정에 엄격한 규칙이 있음) . PostgreSQL에서 문제의 전형적인 해결책은'unaccent()'입니다 (해답 참조). – pozs