• Super User

    Query SQL con select annidati

    SELECT comune
    FROM `comuni` 
    WHERE comune LIKE 'a%'
    AND comune
    IN (
    SELECT comune
    FROM `comuni` 
    WHERE comune LIKE '_r%'
    )
    

    Sto impazzendo, secondo voi che errore c'è in questa query?
    Ho un errore in prossimità del "IN"

    So che usare select annidate non è molto bello, ma sinceramente non so proprio come potrei fare altrimenti per fare una query simile...


  • User

    :mmm: :mmm:

    Non capisco bene cosa vuoi fare con quela query.

    Ma così non è la stessa cosa ?

    
    SELECT comune 
    FROM `comuni` 
    WHERE comune LIKE 'ar%' 
    
    

    :bho:


  • Super User

    ciao,

    io l'avrei fatta:
    SELECT comune
    FROM comuni
    WHERE comune LIKE 'a%'
    AND comune LIKE '_r%'

    non è mi è chiaro perchè usi una query annidata in ogni caso non impazzirci. solo l'ultima versione di mysql permette le query annidate ed il server dove girano i miei siti non ne è dotato :arrabbiato: :arrabbiato: :arrabbiato:

    sono comodissime lo so ma sono per molti ma non per tutti :ciauz:

    comunque sono curioso di sapere perchè pensavi di usare una query annidata.


  • Super User

    Guarda, il discorso è semplice.

    Sempre per lo script del T9.

    Pensavo di fare una cosa di questo tipo:

    ho dei numeri, faccio il parsing per ogni numero e per ogni numero creo una query di questo tipo, certo è che effettivamente anche l'AND '_r%' dovrebbe funzionare...ora provo 😄


  • Super User

    ovviamente sono stato stupido io a non pensarci subito che bastavano degli and e degli or 😄

    Ho fatto una prova con una sequenza di 2 numeri

    ES: 23

    La query da eseguire è questa:

    SELECT comune
    FROM `comuni` 
    WHERE (
    comune LIKE 'a%'
    OR comune LIKE 'b%'
    OR comune LIKE 'c%'
    )
    AND (
    comune LIKE '_d%'
    OR comune LIKE '_e%'
    OR comune LIKE '_f%'
    )
    

    E sembra funzionare 😉

    Grazie ancora a tutti