Zajmuję się tworzeniem aplikacji w Railsach na OS X przy użyciu PostgreSQL 8.4. Muszę skonfigurować bazę danych dla aplikacji, aby standardowe zapytania tekstowe nie uwzględniały wielkości liter. Na przykład:Ktoś odniósł sukces, używając specyficznych ustawień narodowych dla bazy danych PostgreSQL, aby w porównaniu nie było rozróżniania wielkości liter?
select * from dokumentów WHERE title = 'niesamowite dokument'
powinien zwrócić ten sam rezultat jak:
select * from dokumentów WHERE title = 'Incredible Dokument'
Żeby było jasne, nie chcę użyć:
(1), jak w przypadkach rozdziału lub innego rodzaju specjalnych operatorów porównania
(2) citext do typu danych kolumny lub inne specjalne indeksu kolumny
(3) Każdy typ oprogramowania pełnego tekstu tak jak Sphinx
Chcę ustawić ustawienia regionalne, aby zapewnić obsługę rozróżniania wielkości znaków bez rozróżniania wielkości liter. Pracuję w systemie Mac OS X (10.5 Leopard) i próbowałem już ustawić kodowanie na "LATIN1", a ustawienia Collation i Ctype ustawiono na "en_US.ISO8859-1". Dotychczas nie osiągnięto żadnego sukcesu.
Każda pomoc lub sugestie są mile widziane.
Dzięki!
Aktualizacja
I zostały oznaczone jednym z udzielonych odpowiedzi jako poprawną odpowiedź z szacunku dla ludzi, którzy odpowiedzieli. Jednak postanowiłem rozwiązać ten problem inaczej niż sugerowano. Po dalszym przeglądzie aplikacji, istnieje tylko kilka przypadków, w których potrzebuję porównywania wielkości liter z polem bazy danych, więc będę tworzyć pola bazy danych dla tych, których potrzebuję do porównania bez rozróżniania wielkości liter. Na przykład name i name_lower. Sądzę, że natknąłem się na to rozwiązanie w internecie. Mam nadzieję, że PostgreSQL pozwoli na podobne opcje sortowania do tego, co SQL Server zapewnia w przyszłości (tj. DOCI).
Specjalne podziękowania dla wszystkich, którzy odpowiedzieli.
co z indeksu na 'górne (tytuł)' i poszukiwania z 'UPPER (title) = UPPER (" Cokolwiek ciąg ")'? –
Używam Ruby on Rails i chciałbym, aby środowisko mogło obsłużyć jak najwięcej SQL. Nie zawsze mogę używać PostgreSQL dla tego projektu. –