Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Domanda su LIKE

  1. #1
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567

    Domanda su LIKE

    Ciao a tutti in una selezione sql ho utilizzato una forma tipo:

    codice:
    variabile="pippo"
    select * from db where campo LIKE '%"variabile"%'
    In questo modo mi trova tutti i record dove nel campo è presente la parola pippo, ma anche dove sono presenti parole che contengono pippo tipo (es. pippone, pippofranco ecc.)
    Come si fa a selezionare solo i record dove è contenuta esattamente la parola pippo e non una parte?

  2. #2
    In questa maniera ti prende solo i record della variabile giusta

    select * from db where campo = '"variabile"'

  3. #3
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    se dentro un campo ho però del testo non funziona giusto? Con il like mi effettua in pratica una ricerca all'interno di un campo che può contenere numerose parole (magari è la descrizione di un articolo), con = non mi prende solo dove c'è la precisa corrispondenza e quindi non solo una parola del testo?

  4. #4
    esatto

  5. #5
    Originariamente inviato da flash20
    se dentro un campo ho però del testo non funziona giusto? Con il like mi effettua in pratica una ricerca all'interno di un campo che può contenere numerose parole (magari è la descrizione di un articolo), con = non mi prende solo dove c'è la precisa corrispondenza e quindi non solo una parola del testo?
    Io proverei così:

    codice:
    qry_select = "select * from db where campo LIKE '% " & variabile & " %' OR campo LIKE '" & variabile & " %' OR campo LIKE '% " & variabile & "';"
    Occhio agli spazi perché servono per identificare le fine parole...
    Gli OR servono per beccare anche i campi che finiscono o iniziano con la parola cercata...

    Facci sapere se funziona!

    ***************************
    Non può piovere per sempre...
    ***************************

  6. #6
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Effettivamente aggiungendo lo spazio prende solo la parola precisa, però ho notato che se la parola è la prima no la prende.

    Esempio: parola cercata lezioni
    inizio lezioni domani (qui mi trova la parola)
    lezioni iniziano domani (così essendo la prima parola non la trova)
    inizio "lezioni guida" domani (non la trova perchè ci sono le virgolette)

  7. #7
    Originariamente inviato da flash20
    Effettivamente aggiungendo lo spazio prende solo la parola precisa, però ho notato che se la parola è la prima no la prende.

    Esempio: parola cercata lezioni
    inizio lezioni domani (qui mi trova la parola)
    lezioni iniziano domani (così essendo la prima parola non la trova)
    inizio "lezioni guida" domani (non la trova perchè ci sono le virgolette)
    Sai cosa aiuterebbe?
    Se tu postassi un po' di codice.

    Perché con la query che ti ho scritto la prima parola dovrebbe trovarla...

    ***************************
    Non può piovere per sempre...
    ***************************

  8. #8
    posta il codice

  9. #9
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Ciao scusate ma sono stato assente, ecco il codice che ho utilizzato:

    codice:
    	sql = "SELECT * FROM db WHERE stato='"&niente&"' and"
    	
    for i = 0 to ubound(stringa)
    
    if not stringa(i)="" then
    sq =" nome LIKE ' % " & stringa(i) & " % '"
    
    if i<conta then
    sq=sq&" or "
    end if
    
    
    sql=sql&sq
    end if
    Next
    
    
    set rss=conn.execute(sql)

  10. #10
    Originariamente inviato da flash20
    Ciao scusate ma sono stato assente, ecco il codice che ho utilizzato:

    codice:
    	sql = "SELECT * FROM db WHERE stato='"&niente&"' and"
    	
    for i = 0 to ubound(stringa)
    
    if not stringa(i)="" then
    sq =" nome LIKE ' % " & stringa(i) & " % '"
    
    if i<conta then
    sq=sq&" or "
    end if
    
    
    sql=sql&sq
    end if
    Next
    
    
    set rss=conn.execute(sql)
    Mi pare che tu abbia fatto un po' di paciocco...
    Immagino che a monte del codice che hai postato tu abbia uno split per separare le parole della ricerca e salvare in "stringa" il risultato..
    detto questo prova a scrivere, come ti avevo già suggerito:
    codice:
    sql = "SELECT * FROM db WHERE stato='"&niente&"' and ("
    	
    for i = 0 to ubound(stringa)
    
    if not stringa(i)="" then
    sq = "nome LIKE '% " & stringa(i) & " %' OR nome LIKE '" & stringa(i) & " %' OR nome LIKE '% " & stringa(i)
    
    if i < conta then
    sq = sq & " or "
    end if
    
    
    sql = sql & sq
    end if
    Next
    sql=sql&");"
    
    response.write sql & "
    "
    
    set rss=conn.execute(sql)
    E vedi cosa restituisce ...

    Facci sapere!
    ***************************
    Non può piovere per sempre...
    ***************************

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 © 2025 vBulletin Solutions, Inc. All rights reserved.