Query case-sensitive con MySQL
Quando facciamo una query testando un campo di testo, MySQL si comporta in maniera non case-sensitive.
Quindi queste query daranno lo stesso risultato:
SELECT * FROM utenti WHERE nome "MATTEO";
SELECT * FROM utenti WHERE nome "matteo";
E via discorrendo con le varie possibili combinazioni.
Non è detto che questo è quello che vogliamo; ad esempio in un sito ho un login con username sempre in maiuscolo, ed ovviamente otterei uno username buono mettendolo in minuscolo.
Per ovviare a questo problema possiamo usare BINARY e VARBINARY.
Quindi possiamo eseguire una query per login di questo tipo:
SELECT * FROM utenti WHERE BINARY(nome) = 'matteo' AND password = 'password';
Così verranno controllate anche minuscole e maiuscole nello username.
Ciao!
database mysql binary varbinary
Commentami!