Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Query con operatore LIKE - funziona in parte :(
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • S
      spyro70 User • 17 ott 2006, 19:05 ultima modifica di

      Query con operatore LIKE - funziona in parte :(

      Innanzitutto salve a tutti. E' la prima volta che mi affaccio su questo forum e spero di trovare la soluzione al mio problema.

      Sto realizzando un piccolo motore di ricerca per un sito e uso una query, identica per logica a molti esempi visti in alcuni siti, dove ho la possibilità di fare una ricerca adattando la stessa al numero di parole inserite, ma a me sembra non funzioni perfettamente.

      SELECT * from documenti WHERE descrizione LIKE '%parola1%' AND '%parola2%' AND...

      Se cerco una sola parola, ad esempio FERRARI, la trovo senza problemi. Ma se cerco FERRARI e AEREO, pur essendo nel campo descrizione non me ne trova nessuno! Ma se metto solo AEREO me lo trova...

      Mi spiegate questo comportamento per me anomalo? Allora se ho bisogno di tirare fuori più parole l'AND a che mi serve?

      Uso ACESS e ASP...

      Grazie a quanti mi vorranno illuminare!

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
        Caricamento altri post
        Rispondi
        • Topic risposta
        Effettua l'accesso per rispondere
        • Da Vecchi a Nuovi
        • Da Nuovi a Vecchi
        • Più Voti
         

      • rinzi
        rinzi Super User • 17 ott 2006, 19:27 ultima modifica di

        ciao e benvenuto 🙂

        prova così
        SELECT * from documenti WHERE descrizione LIKE '%parola1%' AND descrizione LIKE '%parola2%'

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • S
          spyro70 User • 17 ott 2006, 19:34 ultima modifica di

          mhh...probabilmente ho scritto male io, ma domani proverò in ufficio e vi faccio sapere. Grazie mille per la rapida risposta.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • paocavo
            paocavo Moderatore • 18 ott 2006, 06:33 ultima modifica di

            @Rinzi said:

            ciao e benvenuto 🙂

            prova così
            SELECT * from documenti WHERE descrizione LIKE '%parola1%' AND descrizione LIKE '%parola2%'

            Forse sarebbe meglio:

            
            SELECT * from documenti WHERE 
                             descrizione LIKE '%parola1%' **OR** 
                             descrizione LIKE '%parola2%'
            
            
            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • S
              spyro70 User • 18 ott 2006, 06:49 ultima modifica di

              Bungiorno a tutti. Stamattina in ufficio ho provato i vostri suggerimenti, ma purtroppo la cosa non cambia. Riesco ad ottenere un risultato solo e soltanto se metto una sola parola presente, se ne metto due non mi viene fuori nulla.

              Ho provato anche con OR...ma il discorso non cambia.

              *Se cerco la parola "house" e la parola è presente nel mdb ricavo questo:
              *
              SELECT * FROM documenti WHERE descrizione LIKE '%medici%' ORDER BY doc_id

              **1
              House, il medico d'oro
              www.house.it

              ***Se scrivo la parola "house" e "fantascienza" parola presente nel db ottengo questo ma senza alcun risultato

              **SELECT * FROM documenti WHERE descrizione LIKE '%house %' AND descrizione LIKE '%fantascienza%' ORDER BY doc_id

              **Se scrivo la parola "fantascienza" nel db ottengo questo:

              **SELECT * FROM documenti WHERE descrizione LIKE '%fantascienza%' ORDER BY doc_id

              *2
              Galactica ritorna i cult anni 80
              www.galactica.it

              **4
              L'uomo bionico e la donna bionica
              www.bionico.net

              **Tutto questo con l'operatore AND. Se uso l'operatore OR me ne trova o una o l'altra e non tutte insieme (che è il mio obiettivo).

              ...!

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • S
                spyro70 User • 18 ott 2006, 06:52 ultima modifica di

                ...in teoria con AND dovrebbero uscirmi fuori tutti i record trovati che nella descrizione hanno "house" e "fantascienza"...o no?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • C
                  cali1981 Super User • 18 ott 2006, 07:33 ultima modifica di

                  Si, però quelli che li hanno entrambi! Dai risultati che hai dato non mi smebra che ci sia una descrizione con house e fantascienza insieme, o no?
                  Come suggerito prima, se vuoi quelli chehanno O house O fantascienza devi usare OR invece di AND, se invece vuoi quelli che li hanno entrambi, va bene usare AND, ma poi non stupirti se gli dai due termini che non hanno inente a che fare tra loro e poi non trovi niente!

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • S
                    spyro70 User • 18 ott 2006, 07:58 ultima modifica di

                    ...mhh, credo proprio che hai ragione.

                    Ho provato ed effettivamente mi escono fuori solo quelli che li contengono entrambi.

                    Quindi se voglio cercare 2 parole che sono contenuti su due record diversi devo devo procedere in altra maniera...

                    Scusate ma non sono molto esperto, sto cercando di imparare :arrabbiato:

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • C
                      cali1981 Super User • 18 ott 2006, 08:02 ultima modifica di

                      @spyro70 said:

                      ...mhh, credo proprio che hai ragione.

                      Ho provato ed effettivamente mi escono fuori solo quelli che li contengono entrambi.

                      Quindi se voglio cercare 2 parole che sono contenuti su due record diversi devo devo procedere in altra maniera...

                      Scusate ma non sono molto esperto, sto cercando di imparare :arrabbiato:

                      Immaginavo!
                      Comunque no problem, per fare quello che vuooi tu devi usare OR al posto di AND come detto! Dai una ripassatina alla logica binaria, è semplicissima ma fondamentale!

                      Ciao!

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • S
                        spyro70 User • 18 ott 2006, 09:48 ultima modifica di

                        Grazie,
                        sto già ripassando (o meglio studiando) la logica binaria.

                        Posto il link qui di una paginetta interessante, magari se in futuro qualcuno ne avrà bisogno saprà dove cercare:

                        **LOGICA BINARIA

                        **Con OR ho comunque risolto, mi sembra di capire.

                        Quindi ricapitolando...se uso AND ottengo solo le informazioni se AND viene soddisfatto (TRUE) - cioè se le due parole cercate sono presenti contemporaneamente nello stesso record. Naturalmente se una o l'altra è presente, otterrò un FALSE...dico bene?

                        Prossimo obiettivo...la paginazione...ahi!

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • C
                          cali1981 Super User • 18 ott 2006, 09:53 ultima modifica di

                          Si ma in questo caso non ottieni true o false.
                          Praticamente è come se facesse le due query distinte, e poi dei due insiemi di risultati facesse l'intersezione, quindi restituisce solo i valori presenti in entrambi gli insiemi, cioè quelli ad esempio che contengono SIA Ferrari SIA Aereo.
                          Invece con OR fa l'unione, quindi restituisce quelli che contengono O FErrari O Aereo. Comunque la logica che dici riguardo al true e false riguardo agli operatori binari è giusta!
                          Spero di essere stato di aiuto!

                          Ciao!

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • S
                            spyro70 User • 18 ott 2006, 10:02 ultima modifica di

                            Bene...adesso ho chiaro il concetto... 🙂

                            Che dirti grazie ancora per l'ennesima info. Spero di trovare altro aiuto in seguito perchè con la programmazione ne ho proprio bisogno! :fumato:

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • C
                              cali1981 Super User • 18 ott 2006, 17:59 ultima modifica di

                              Nel forum c'è sempre qualcuno che ti aiuta!

                              Ciao e buona programmazione!

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              Caricamento altri post
                              Rispondi
                              • Topic risposta
                              Effettua l'accesso per rispondere
                              • Da Vecchi a Nuovi
                              • Da Nuovi a Vecchi
                              • Più Voti