Quote Originariamente inviata da matteolandi Visualizza il messaggio
a e b sono set di valori non campi
Una soluzione potrebbe essere

select 2 in (2,4,5)

che restituisce 1 quando 2 è presente in (2,4,5), altrimenti 0. Così però posso testare un valore per volta.

select 2,4 in (2,4,5) non fonziona perchè restituisce 2 in ogni caso e poi esegue il test tra 4 e (2,4,5)
Stai facendo confusione. In SQL la parola chiave in confrontra dei valori per restituire 0 (ovvero true) o 1 (ovvero false)non un valore.
Se vuoi ricavare dei valori devi per forza usare una struttura di dati.

L'esempio qui sotto funziona ma sarebbe molto meglio avere due vere tabelle.
codice:
select * from
( 
 select 2 as a
 union all select 3
 union all select 5
 union all select 8
 union all select 9
) 
AS tabella1
inner join
( 
 select 2 as b
 union all select 3
 union all select 4
 union all select 7
 union all select 9
) 
AS tabella2 on tabella1.a=tabella2.b

Puoi anche dare un'occhiata qui http://stackoverflow.com/questions/1...iable-in-mysql
ma anche qui è molto macchinoso e non so se fa per te.