Autore Topic: sql ricerca con più filtri  (Letto 2609 volte)

Offline Ferdinando88

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
sql ricerca con più filtri
« il: 05 Maggio 2012, 08:37:03 »
Ciao a tutti, vi espongo il mio problema.
Ho creato un database per un agenzia immobiliare e volevo implementare la funzione di ricerca, per farlo ho utilizzato questa funzione

 sql = "SELECT * FROM immobili WHERE tipologia LIKE '%" & textbox9.text & "%'"

però in questa maniera ovviamente mi da i risultati relativi solo ad un filtro, se io volessi mettergli più filtri ? qualcuno può aiutarmi ?

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #1 il: 05 Maggio 2012, 09:17:27 »
sql = "SELECT * FROM immobili WHERE tipologia LIKE '%" & textbox9.text & "%' And costo > 1000"

Basta aggiungere un And ogni volta che vuoi aggiungere un filtro...

Non per farmi pubblicità,  :-[, potresti provare il mio progetto QueryCreator... ti facilita un po' la vita nelle costruzioni di query

Offline Ferdinando88

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #2 il: 05 Maggio 2012, 09:37:20 »
grazie, della risposta...dove lo trovo il tuo progetto ? potrebbe interessarmi !!!
Cmq il problema è che con la soluzione che mi hai dato mi cerca più filtri ma solo nella colonna "tipologia" io invece vorrei che ogni filtro cercasse in una colonna diversa e alla fine ottenessi un unico risultato.
Per esempio, mettiamo che un utente desideri cercare una Appartamento di 100mq al prezzo di 200.000 euro.

Io vorrei usare 2 filtri

1) 100 mq
2) 200.000 euro

ed ottenere i risultati che soddisfino entrambi i filtri e non solo uno o l'altro....è possibile ?

Offline Ferdinando88

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #3 il: 05 Maggio 2012, 09:41:11 »
No scherzavo...funziona :-) grazie mille :-)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #4 il: 05 Maggio 2012, 09:41:47 »
premesso che io non so che campi ci sono nella tua tabella (infatti hai messo un * nella select) ma se leggi il post precedente vredrai che c'e' un filtro su tipologia che accetta un dato esterno e un filtro sul (immaginario) campo costo che filtra i costi superiori a 1000....

il progetto QueryCreator lo trovi qui:

http://www.gambas-it.org/smf/index.php?topic=1912.msg23384#msg23384

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #5 il: 05 Maggio 2012, 09:42:16 »
No scherzavo...funziona :-) grazie mille :-)

Ecco appunto  :)

Offline Ferdinando88

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #6 il: 05 Maggio 2012, 11:14:43 »
Giusto un altra cosa...come faccio a mettere un nome alle colonne ? nella GW i dati mi escono senza il titolo della colonna ed è troppo caotico così

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #7 il: 05 Maggio 2012, 22:22:00 »
Select Campo1 As Etichetta, Campo2 As Etichetta2, ... Form Tabella Where ...

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #8 il: 05 Agosto 2013, 12:22:38 »
rispolvero questo tread (utilissimo) per chiedere un consiglio su come effettuare una ricerca un po' piu' articolata.

La richiesta e' quella di fare una ricerca per TAG sul database. Ovvero cercare sul DB quei contenuti che hanno tag corrispondenti a: "tag1" or "tag2" and "tag3" not ("tag4" or "Tag5")

Esite una funzione precostituita od un parser gia' realizzato che interpreta la sintassi dei tag (o similare) e genera una ricerca condizionata SQL ?

Per ora ho implementato bene con il singolo tag .... ma mettersi a far eun parser per gli AND OR NOT con la nidificazione delle parentesi) proprio non mi va' :D

Codice: [Seleziona]
 If ComboBox_Program.Text <> "" Then
    comando = "SELECT * from Programs_episodes WHERE program = '" & ComboBox_Program.Text & "'"
    Else
      comando = "SELECT * from Programs_episodes"
  Endif
 
  If ComboBox_Season.Text <> "" Then
    comando = comando & "AND season = '" & ComboBox_Season.Text & "'"
  Endif
 
  If TextArea_TAG.Text <> "" Then
    If InStr(comando, "WHERE") > 0 Then
      comando = comando & " AND Tags = '" & TextArea_TAG.Text & "'"
      Else
        'comando = comando & " WHERE Tags = '" & TextArea_TAG.Text & "'"
        comando = comando & " WHERE Tags like '%" & TextArea_TAG.Text & "%'"
    Endif
  Endif

se corri, morirai stanco (motto degli sniper)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #9 il: 06 Agosto 2013, 19:33:35 »
I dbms hanno svariate funzioni per le ricerche.
Le sintassi e le potenzialità dipendono dal tipo di database (MySQL o PostgreSQL o altro), per cui la cosa diventa complicata se gestita da programma.
Con questo intendo dire che, conoscendo tutte le funzioni include nel db, comporta la scrittura di un driver specifico, e per ogni tipo di database.
Il driver ODBC, per esempio, implementa un set molto limitato di queste funzioni, perchè ogni db ha le sue, alcune coincidono con funzioni presenti in altri motori, alcuni non le hanno proprio.
Se la tua applicazione è completamente mirata ad un tipo di db specifico, puoi richiamare e utilizzare direttamente le sue funzioni interne. Però, se poi decidi di rendere l'applicazione un pò più dinamica, allora la cosa può creare problemi.

Se le ricerche vengono fatte tramite codice, con i semplici comandi sql standard, allora non avrai problemi, tranne che per le performaces. Alcuni db usando funzioni estremamente specializzate, e che sfruttano appieno la potenza del motore del db, che non potrai mai raggiungere da codice esterno.

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: sql ricerca con più filtri
« Risposta #10 il: 08 Agosto 2013, 13:16:25 »
si capisco ...... penso che usero' un OR forzato ... quindi piu' tag mettono piu' "allargano" il pool dei risultati ..... poi vedremo .....

per le prestazioni ..... me ne occupero' quando avro' uno scheletro di applicazione funzionante ;-)

se corri, morirai stanco (motto degli sniper)