Che differenza c'e tra queste 2 query?
SELECT id, chiave FROM tab WHERE chiave = 'pippo';
SELECT id, chiave FROM tab WHERE chiave LIKE 'pippo';
Che differenza c'e tra queste 2 query?
SELECT id, chiave FROM tab WHERE chiave = 'pippo';
SELECT id, chiave FROM tab WHERE chiave LIKE 'pippo';
WiWa le dottoresse di 40 ani.
"Il potere delle donne è solo dovuto all'idiozia di molti uomini ... se non sbavassero come cani alla prima che gliela fa intravedere, le cose andrebbero diversamente."
(alexmaz © - rivisitato by xxxfiles)
= è case sensitive, LIKE no![]()
debian:~$ uname -r
2.6.18-1-686
debian:~$
Il quiz manager è nato!!! visitate http://shenk.altervista.org !!
Non lo sapevo. Ma non e' che e' il contrario?
WiWa le dottoresse di 40 ani.
"Il potere delle donne è solo dovuto all'idiozia di molti uomini ... se non sbavassero come cani alla prima che gliela fa intravedere, le cose andrebbero diversamente."
(alexmaz © - rivisitato by xxxfiles)
con '=' esigi di trovare la corrispondenza esatta di ciò che indichi dopo l'operatore '=' mentre con LIKE che è un'operatore di pattern matching puoi fare anche delle richieste più eleborate come LIKE 'pipp%';
pronto ad essere smentito però![]()
Calma conosco il costrutto LIKE 'pipp%'; ed il significato di "%"
Io vorrei invece sapere la differenza (se esiste) tra
LIKE 'pippo';
ed
= 'pippo';
WiWa le dottoresse di 40 ani.
"Il potere delle donne è solo dovuto all'idiozia di molti uomini ... se non sbavassero come cani alla prima che gliela fa intravedere, le cose andrebbero diversamente."
(alexmaz © - rivisitato by xxxfiles)
con LIKE puoi utilizzare i caratteri wildcard, con = no.
Tutto qui. Se la stringa che cerchi e' esatta fa proprio lo stesso. Anche se personalmente preferisco usare = per i numeri e le date e LIKE per le stringhe. Questione di omogeneita' di script (per quel che mi riguarda ovviamente). Se per esempio non trovo un dato aggiungo un % senza dover correggere la query.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
come risultato fare = 'pippo' e LIKE 'pippo' danno gli stessi dati (per il case sensitive consiglerei di vedere a seconda del dbms) SQL server non ha un LIKE case sensitive, oracle si
La differenza sta nell'ottimizatore, LIKE e' considerata un operazione onerosa e percio l'ottimizazzione della query viene fatta in modo diverso.
= funziona su ogni tipo di dato
LIKE solo su stringhe
Frank Contrepois
http://contrepois.blogspot.com
http://www.coblan.it
LIKE su mysql funziona su qualunque tipo di dato. Basta passarlo come stringa anche se e' un valore numerico....[supersaibal]Originariamente inviato da frank-coblan
La differenza sta nell'ottimizatore, LIKE e' considerata un operazione onerosa e percio l'ottimizazzione della query viene fatta in modo diverso.
= funziona su ogni tipo di dato
LIKE solo su stringhe [/supersaibal]
num LIKE '%.99';
ti trova tutti i valori xx.99, e cosi' lo stesso con le date. La principale differenza con = e' nella possibilita' di usare i caratteri wilcard.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Grazie delle risposte.
Cmq e' venuto fuori, che poi era quello di cui volevo conferma, che il costrutto LIKE fa un pattern matching e che quindi se a me interessa trovare proprio 'pippo' mi conviene usare "=" perche' la query dovrebbe essere piu' veloce, specie se a me interessa la velocita'.
Ancora grazie a tutti.![]()
WiWa le dottoresse di 40 ani.
"Il potere delle donne è solo dovuto all'idiozia di molti uomini ... se non sbavassero come cani alla prima che gliela fa intravedere, le cose andrebbero diversamente."
(alexmaz © - rivisitato by xxxfiles)
no, è così[supersaibal]Originariamente inviato da xxxfiles
Non lo sapevo. Ma non e' che e' il contrario? [/supersaibal]
debian:~$ uname -r
2.6.18-1-686
debian:~$
Il quiz manager è nato!!! visitate http://shenk.altervista.org !!