PDA

Visualizza la versione completa : [FIREBIRD] Query con LIKE insensibile a maiuscole/minuscole


[D]ottor
03-11-2006, 10:23
Ciao a tutti
Mi è capitato un problema strano che prima d'ora non mi èmai capitato..
Quando faccio



Dim testo as String
testo = "prova"
sql = "SELECT * FROM tbl WHERE campo LIKE '%"+testo+"%'"


se nel database c'è scritto Prova, cioè con la prima lettera maiuscola, la query non restituisce risultati! L'utente quando fa una ricerca dovrebbe rispettare le maiuscole e minuscole... come si può risolvere questo problemino?
Grazie :ciauz:

Sypher
03-11-2006, 13:51
con qualche funzione sql...tipo UCase?

Nikk11
03-11-2006, 15:07
come si può risolvere questo problemino?
Grazie


Così!!



Dim testo as String
testo = "prova"
sql = "SELECT * FROM tbl WHERE UPPER(campo) LIKE '%"+Uppercase(testo)+"%'"


ps: occhio che usando upper l'uso degli indici non è ottimale
ciao ciao
:ciauz:

[D]ottor
03-11-2006, 15:25
Originariamente inviato da Nikk11
Così!!



Dim testo as String
testo = "prova"
sql = "SELECT * FROM tbl WHERE UPPER(campo) LIKE '%"+Uppercase(testo)+"%'"


ps: occhio che usando upper l'uso degli indici non è ottimale
ciao ciao
:ciauz:

cioè?
Cosa vuol dire che l'uso degli indici non è ottimale?
:bhò:

Nikk11
03-11-2006, 15:45
Che anche se hai un indice sul campo su cui fai il like, probabilmente con l'UPPER non verrà utilizzato con conseguente decadimento delle performance :cry:
Insomma, la query funziona ma è difficile che la query sia ottimizzata, tutto qua

Ciao :ciauz:

[D]ottor
03-11-2006, 16:05
ah ok ok non me ne importa...
Intanto è una semplice campo varchar contenente un nome...
Quindi non ho questi problemi....
GRAZIE MILLE :ciauz:

Loading