Query case sensitive in SQL
Chiunque abbia realizzato una query SQL sa che i dati testuali vengono normalmente reperiti senza attenzione alla distinzione tra maiuscole e minuscole nell’applicazione dei filtri. Vediamo come aggirare questa limitazione.
Select tradizionale
Una query tipica per campi di testo è nella forma
SELECT * FROM aziende WHERE nome = "GiBiLogic"
I risultati di questa ricerca includeranno tutti i possibili risultati:
- … | GiBiLogic | … | … | …
- … | GIBILOGIC | … | … | …
- … | gibilogic | … | … | …
Questo può essere un risultato accettabile nella maggior parte dei casi, tuttavia possiamo facilmente immaginare che esistano casi in cui la distinzione è rilevante. المنتخبات المتأهلة ليورو 2023
Binary select
Per ottenere quanto desiderato, utilizzare invece la query:
SELECT * FROM aziende WHERE (BINARY nome="GiBiLogic")
In questo modo i risultati saranno solo quelli in cui il nome coincide esattamente.
Campi binary
Per fare in modo che un campo testuale sia sempre trattato in modalità case sensitive, senza dover includere tale parola chiave nella query, dobbiamo modificare la definizione del campo stesso:
ALTER TABLE aziende MODIFY nome varchar (50) BINARY
Una volta resa permanente la caratteristica case-sensitive per detti record la query potrà essere eseguita senza l’utilizzo della parola chiave BINARY:
SELECT * FROM clienti WHERE town=”Milano”;.