Tôi đang viết một ứng dụng cần làm việc trên cả mysql và postgresql. Tôi phải sử dụng like
để so sánh một số giá trị.Cú pháp 'LIKE' của SQL
Trong mysql LIKE
trường hợp không phân biệt chữ hoa chữ thường. Trong postgresql LIKE
phân biệt chữ hoa chữ thường và ILIKE
không phân biệt chữ hoa chữ thường.
Cách tốt nhất để thực hiện truy vấn rắn hoạt động trên cả hai trường hợp đối sánh phải phân biệt chữ hoa chữ thường là gì?
PDO có giải pháp cho việc này không?
"Q: Tất cả các tập lệnh đều có chữ hoa và chữ thường? A: Không, thực tế là hầu hết các tập lệnh đều không có trường hợp." (Từ Câu hỏi thường gặp về Unicode) Trong trường hợp chung, bạn không thể dựa vào ký tự chữ thường để có phiên bản chữ hoa. Bạn cũng không thể đếm trên một ký tự chữ thường để ánh xạ tới một ký tự chữ hoa duy nhất - một số ký tự UPPER() cho hai ký tự. Vì vậy, lower() là an toàn hơn, nhưng chỉ một chút. Bạn không thích sống trong thế giới Unicode? –
@Catcall: Một ví dụ điển hình về một ánh xạ ký tự chữ thường đơn cho hai ký tự chữ hoa xuất phát từ ngôn ngữ Đức kỳ lạ: 'UPPER (" ß ")' là '" SS "'. I18N và L10N là một thời gian vui vẻ vui vẻ! Đặc biệt là khi bạn đang đối phó với JIS, SJIS, EUC, và Unicode Nhật Bản cùng một lúc mà không thể đọc được tiếng Nhật (đã ở đó, hãy làm điều đó, vui mừng khi UTF-8 khá chuẩn trong những ngày này). –