Трябва да намерите по-добър начин да представите това, което искате, но мисля, че следното е близо:
select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
substring_index(substring_index(entry_value, '"', 4), '"' -1),
. . .
)
Може да се наложи да поставите условие за спиране въз основа на броя на стойностите в броя на стойностите в низа, което води до нещо като:
select concat_ws(',',
case when num_entry_values >= 1 then substring_index(substring_index(entry_value, '"', 2), '"' -1) end,
case when num_entry_values >= 2 then substring_index(substring_index(entry_value, '"', 4), '"' -1) end,
. . .
)
Ако нямате това число, можете да го изчислите, като преброите броя на двойните кавички в низа.
РЕДАКТИРАНЕ:
За да преброите броя на записите, пребройте "
:
from (select aev.*,
(length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
from ch_arf_entry_values aev
) aev