Je zou een betere manier moeten vinden om weer te geven wat je wilt, maar ik denk dat het volgende in de buurt komt:
select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
substring_index(substring_index(entry_value, '"', 4), '"' -1),
. . .
)
Mogelijk moet u een stopvoorwaarde plaatsen op basis van het aantal waarden in het aantal waarden in de tekenreeks, wat resulteert in iets als:
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,
. . .
)
Als je dit getal niet hebt, kun je het berekenen door het aantal dubbele aanhalingstekens in de tekenreeks te tellen.
BEWERKEN:
Om het aantal inzendingen te tellen, tel je de "
:
from (select aev.*,
(length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
from ch_arf_entry_values aev
) aev