Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727

    costruzione SELECT complessa...

    devo estrarre dei dati da un DB in modo un pò complesso, spiego il problema con un esempio che adesso mi funziona:

    SELECT nome FROM tabella WHERE 1 AND categoria LIKE '%sociale%' AND prov IN ('AL','BI','AT','CN','NO','TO','VB','VC')

    questa select mi estrae i nomi di UNA SOLA categoria ma mi dà la possibilità di selezionare tante provincie in cui c'è quella categoria

    Ora ho l'esigenza di una select simile ma che mi dia la possibilità di estrarre contemporaneamente anche più categorie insieme, ho scimmiottato quella delle provincie ed è venuta fuori questa:

    SELECT nome FROM tabella WHERE 1 AND cat IN ('agricoltura','direzione','paghe','sport','social e') AND prov IN ('AL','BI','AT','CN','NO','TO','VB','VC') ORDER BY id

    ma non va, non che restituisca errore ma mi estrae 4 nomi, invece sono 160...
    se metto where cat like
    mi dà errore

  2. #2
    metti le categorie che ti servono in OR perche' IN() cerca il termine esatto. E togli quell'antiestetico "1 and" ...

    codice:
    WHERE 
    (categoria LIKE '%sociale%' 
    OR categoria LIKE '%agricoltura%'
    OR categoria LIKE '%direzione%'
    OR categoria LIKE '%sport%')
    AND 
    prov IN ('AL','BI','AT','CN','NO','TO','VB','VC')
    nota che il gruppo in OR deve stare tra parentesi altrimenti avresti risultati inattesi per problemi di precedenza di esecuzione tra AND e OR.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    grazie, perfetto

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.