Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322

    LIKE: cercare piu parole in un campo text

    il mio obbiettivo è cercare una o piu parole in un campo text.

    con una parola è tutto ok.

    per es se ho un campo descrizione che contiene la frase "mario ha la macchina rossa"

    e io cerco "mario" è tutto ok
    se cerco "rossa" è tutto ok
    ma se cerco "mario rossa" non trovo il risultato.

    come posso fare quindi per cercare due parole anziche una in un campo?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    la tua qeury deve diventare

    codice:
    ... WHERE campo LIKE '%"& parola1 &"%' OR campo LIKE '%"& parola2 &"%' OR ...
    Devi creare una query dinamica costruita separando la frase in singole parole mediante la SPLIT()

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    pero come faccio a sapere in anticipo quante parole digiterà l'utente che sta usando la funzione cerca??

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ti interessa.
    La SPLIT() le separa tutte e ti crea un array (a quel punto sai quante sono), e scorrendolo crei una query dinamica.

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    non è che saresti cosi gentile da farmi un esempio di come si usa la SLPIT?

    grazie..

  6. #6
    Ci provo io:

    dim Testo
    dim arrTesto
    dim indexArray
    dim stringaWhere
    dim stringaQuery

    Testo="bla bla bla ..."
    stringaQuery="Select [campo1,campo2,....] from [tabella] where "
    arrTesto=split(Testo," ") ' questo se utilizzi lo SPAZIO come separatore tra le varie parole

    for indexArray=0 to ubound(arrTesto)
    stringaWhere=stringaWhere & " campo ='" & arrTesto(indexArray) & "' OR" ' o AND
    next
    stringaWhere=left(stringaWhere,len(stringaWhere)-3) ' almeno togli gli AND o OR in eccesso
    stringaQuery=stringaQuery & stringaWhere ' concateni il tutto e hai la query completa
    stringaQuery=stringaQuery & " order by ...." ' se ti serve

    Spero di esserti stato d'aiuto come molti su questo forum lo sono stati per me.

    Ciao.
    Senatus PopulusQue Romanus

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    grazie millle per la risp..ora provo..

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