Voglio verificare se una stringa contiene solo lettere maiuscole. So che RLIKE/REGEXP non sono case sensitive in MySQL. Così ho cercato di utilizzare la classe :upper:
carattere:Come verificare la presenza di lettere maiuscole in MySQL?
SELECT 'z' REGEXP '^[[:upper:]]+$';
Questo dà il vero, anche se la z è in minuscolo, ... perché?
+1 avuto la stessa idea, ma non conosceva il trucco con carattere latin1 set – Stephan
Allora, ma perché la classe di caratteri non funziona? Perché sto usando la collazione sbagliata? perché aggiungere ': upper:' quando 'A-Z' fa lo stesso, e': upper: 'è lo stesso di': lower: 'quando la collation è' * _ci'? Ho pensato che '* _ci' fornisca il dafault, ma quando si usa': upper: 'cerca lettere maiuscole. Nella descrizione di [: character_class:] su http://dev.mysql.com/doc/refman/5.0/en/regexp.html Dice che dovrei guardare le pagine di manuale di 'ctype (3)'. Ho provato 'help ctype',' man ctype', ... niente ha funzionato –
Ho provato: 'SELECT 'z' RLIKE '^ [AZ] $' COLLATE 'utf8_general_cs';', che mi ha dato un errore: 'ERRORE 1273 (HY000): fascicolazione sconosciuta: 'utf8_general_cs''. Il comando 'SELECT 'z' RLIKE '^ [A-Z] $' COLLATE 'utf8_general_ci';' funziona bene. Quindi, come posso installare la fascicolazione case sensitive? –