Sie sollten einen besseren Weg finden, um darzustellen, was Sie wollen, aber ich denke, das Folgende kommt dem nahe:
select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
substring_index(substring_index(entry_value, '"', 4), '"' -1),
. . .
)
Möglicherweise müssen Sie eine Stoppbedingung basierend auf der Anzahl der Werte in der Anzahl der Werte in der Zeichenfolge einfügen, was zu etwas wie:
führtselect 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,
. . .
)
Wenn Sie diese Zahl nicht haben, können Sie sie berechnen, indem Sie die Anzahl der doppelten Anführungszeichen in der Zeichenfolge zählen.
BEARBEITEN:
Um die Anzahl der Einträge zu zählen, zählen Sie den "
:
from (select aev.*,
(length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
from ch_arf_entry_values aev
) aev