Tôi muốn kiểm tra, nếu chuỗi chỉ chấp nhận các chữ in hoa. Tôi biết rằng RLIKE/REGEXP không phân biệt chữ hoa chữ thường trong MySQL. Vì vậy, tôi đã cố gắng để sử dụng lớp :upper:
nhân vật:Cách kiểm tra chữ hoa trong MySQL?
SELECT 'z' REGEXP '^[[:upper:]]+$';
này cho đúng, mặc dù z là trong trường hợp thấp hơn, ... tại sao?
+1 có cùng ý tưởng nhưng không biết mẹo với ký tự latin1 – Stephan
Vì vậy, nhưng tại sao lớp nhân vật không hoạt động? Bởi vì tôi đang sử dụng sai collation? tại sao thêm ': upper:' khi 'A-Z' thực hiện tương tự, và': upper: 'giống với': lower: 'khi collation là' * _ci'? Tôi nghĩ '* _ci' cho dafault, nhưng khi sử dụng': upper: 'nó tìm chữ hoa. Trong mô tả của [: character_class:] trên http://dev.mysql.com/doc/refman/5.0/en/regexp.html Nó nói rằng tôi nên xem các trang hướng dẫn của 'ctype (3)'. Tôi đã thử 'help ctype',' man ctype', ... không có gì làm việc –
Tôi đã thử: 'SELECT 'z' RLIKE '^ [AZ] $' COLLATE 'utf8_general_cs';', đã cho tôi một lỗi: 'ERROR 1273 (HY000): Trùng khớp không xác định: 'utf8_general_cs''. Lệnh 'SELECT 'z' RLIKE '^ [A-Z] $' COLLATE 'utf8_general_ci';' hoạt động tốt. Vì vậy, làm thế nào tôi có thể cài đặt các trường hợp nhạy cảm collation? –