Vous devriez trouver une meilleure façon de représenter ce que vous voulez, mais je pense que ce qui suit s'en rapproche :
select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
substring_index(substring_index(entry_value, '"', 4), '"' -1),
. . .
)
Vous devrez peut-être mettre une condition d'arrêt basée sur le nombre de valeurs dans le nombre de valeurs dans la chaîne, ce qui donnera quelque chose comme :
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,
. . .
)
Si vous n'avez pas ce nombre, vous pouvez le calculer en comptant le nombre de guillemets doubles dans la chaîne.
MODIFIER :
Pour compter le nombre d'entrées, comptez le "
:
from (select aev.*,
(length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
from ch_arf_entry_values aev
) aev