[MySQL] Operatore IN su campo varchar

lorenzo84

Utente Attivo
22 Lug 2012
236
0
16
Buonasera,
Ho un problema nella condizione di questa query. Devo estrarre da una tabella tutti gli id che sono contenuti nel campo guida_id:

Esempio:

ID NOME GUIDA_ID CANCELLATO
1 Pippo 9 0
2 Pluto 10,6 0
3 Paperino 15,10 0
4 Mario 2,10,16 0

Come faccio a estrarre tutti i record in cui è presente 10 ? Ho provato con guida_id IN (10) ma non funziona.
Qualche consiglio?

Grazie
 

marino51

Utente Attivo
28 Feb 2013
2.682
135
63
Lombardia
Codice:
select * from tabella
where GUIDA_ID like '%,10,%'
   or GUIDA_ID like '10,%'
   or GUIDA_ID like '%,10'
nel primo caso 10 é confuso nella stringa
nel secondo é all'inizio della stringa
nel terzo é alla fine della stringa
(nota le virgole di separazione dei valori)

forse altri possono suggerire un sistema migliore,
in ogni caso, devi considerare che, ogni ricerca provoca la lettura sequenziale della tabella,
con tempi di risposta biblici se sono presenti migliaia di records

il consiglio sarebbe di creare una tabella specifica con i valori di GUIDA_ID e poi con una view creare una "TabellaUnione" che consente letture indicizzate e quindi rapide ( e più semplici )
 
Ultima modifica: