Query case-sensitive con MySQL

Mattepuffo's logo
Query case-sensitive con MySQL

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!


Condividi

Commentami!