Zdá se, že to funguje:
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)
znamená to 1. hodnotu, 2., 3. atd.
Vysvětlení:
Vnitřní substring_index
vrátí prvních n hodnot oddělených čárkou. Pokud je tedy váš původní řetězec "34,7,23,89", substring_index( context,',', 3)
vrátí "34,7,23".
Vnější substring_index
přebírá hodnotu vrácenou vnitřním substring_index
a -1
umožňuje vzít poslední hodnotu. Takže dostanete "23" z "34,7,23".
Místo -1
pokud zadáte -2
, dostanete "7,23", protože to vzalo poslední dvě hodnoty.
Příklad:
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Zde prices
je název sloupce v MyTable
.