Sembra funzionare:
substring_index ( substring_index ( context,',',1 ), ',', -1)
substring_index ( substring_index ( context,',',2 ), ',', -1)
substring_index ( substring_index ( context,',',3 ), ',', -1)
substring_index ( substring_index ( context,',',4 ), ',', -1)
significa 1° valore, 2°, 3°, ecc.
Spiegazione:
Il substring_index interno restituisce i primi n valori separati da virgole. Quindi, se la tua stringa originale è "34,7,23,89", substring_index( context,',', 3) restituisce "34,7,23".
Il substring_index esterno prende il valore restituito dal substring_index interno e il -1 ti permette di prendere l'ultimo valore. Quindi ottieni "23" da "34,7,23".
Invece di -1 se specifichi -2 , otterrai "7,23", perché ha preso gli ultimi due valori.
Esempio:
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Qui, prices è il nome di una colonna in MyTable .