Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    SELECT: Differenza tra like ed "="

    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)

  2. #2
    = è case sensitive, LIKE no
    debian:~$ uname -r
    2.6.18-1-686
    debian:~$

    Il quiz manager è nato!!! visitate http://shenk.altervista.org !!

  3. #3
    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)

  4. #4
    Utente di HTML.it L'avatar di Sgurbat
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    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ò

  5. #5
    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)

  6. #6
    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.

  7. #7
    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

  8. #8
    [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]
    LIKE su mysql funziona su qualunque tipo di dato. Basta passarlo come stringa anche se e' un valore numerico....

    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.

  9. #9
    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)

  10. #10
    [supersaibal]Originariamente inviato da xxxfiles
    Non lo sapevo. Ma non e' che e' il contrario? [/supersaibal]
    no, è così
    debian:~$ uname -r
    2.6.18-1-686
    debian:~$

    Il quiz manager è nato!!! visitate http://shenk.altervista.org !!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.