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.

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”;.

GiBiLogic si occupa di instaurare un rapporto con l'azienda per semplificare e rendere efficaci i processi informatici.

GiBiLogic srl Società a socio unico  |  via Aldo Moro 48, 25124 Brescia  |  P.IVA 02780970980
REG.IMPRESE N.02780970980 BRESCIA  |  CAP. SOC. € 10.000 I.V.
info@gibilogic.com  |  +39.351.9234893

iubenda Certified Gold
Partner