Tôi đang phát triển một ứng dụng trong Rails trên OS X bằng cách sử dụng PostgreSQL 8.4. Tôi cần thiết lập cơ sở dữ liệu cho ứng dụng để truy vấn văn bản chuẩn không phân biệt chữ hoa chữ thường. Ví dụ:Bất cứ ai đã thành công bằng cách sử dụng một miền địa phương cụ thể cho một cơ sở dữ liệu PostgreSQL để so sánh văn bản có phân biệt chữ hoa chữ thường?
SELECT * FROM tài liệu ĐÂU title = 'tài liệu đáng kinh ngạc'
nên trả lại kết quả tương tự như:
SELECT * FROM tài liệu ĐÂU title = 'Document Incredible'
Chỉ cần rõ ràng, tôi không muốn sử dụng:
(1) NHƯ trong mệnh đề where hoặc bất kỳ loại khác của toán tử so sánh đặc biệt
(2) citext cho datatype cột hoặc bất kỳ chỉ số cột đặc biệt khác
(3) bất kỳ loại phần mềm toàn văn giống như Sphinx
Điều tôi muốn là đặt ngôn ngữ cơ sở dữ liệu để hỗ trợ so sánh văn bản không phân biệt chữ hoa chữ thường. Tôi đang sử dụng Mac OS X (10.5 Leopard) và đã thử cài đặt Mã hóa thành "LATIN1", với Collation và Ctype đều được đặt thành "en_US.ISO8859-1". Không thành công cho đến nay.
Bất kỳ trợ giúp hoặc đề xuất nào được đánh giá cao.
Cảm ơn!
Cập nhật
Tôi đã đánh dấu một trong những câu trả lời cho là câu trả lời đúng trong sự tôn trọng đối với những ai đáp lại. Tuy nhiên, tôi đã chọn giải quyết vấn đề này khác với đề xuất. Sau khi xem xét lại ứng dụng, chỉ có một vài trường hợp tôi cần so sánh phân biệt chữ hoa với trường cơ sở dữ liệu, vì vậy tôi sẽ tạo các trường cơ sở dữ liệu bóng cho những trường tôi cần so sánh phân biệt chữ hoa chữ thường. Ví dụ: name và name_lower. Tôi tin rằng tôi đã xem qua giải pháp này trên web ở đâu đó. Hy vọng rằng PostgreSQL sẽ cho phép các tùy chọn đối chiếu tương tự với những gì SQL Server cung cấp trong tương lai (ví dụ: DOCI).
Đặc biệt cảm ơn tất cả những ai đã trả lời.
gì sai với một chỉ mục trên 'UPPER (tiêu đề) 'và tìm kiếm với 'UPPER (tiêu đề) = UPPER ('Chuỗi bất kỳ')'? –
Tôi đang sử dụng Ruby on Rails và muốn cho phép khung công tác xử lý càng nhiều SQL càng tốt. Tôi không phải lúc nào cũng sử dụng PostgreSQL cho dự án này. –