sql >> Databáze >  >> RDS >> Mysql

MySQL vybírá slova v uvozovkách ve sloupci neuspořádaného textu

Měli byste najít lepší způsob, jak reprezentovat to, co chcete, ale myslím, že následující:

select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
                 substring_index(substring_index(entry_value, '"', 4), '"' -1),
                 . . .
                )

Možná budete muset zadat podmínku stop na základě počtu hodnot v počtu hodnot v řetězci, což má za následek něco jako:

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,
              . . .
             )

Pokud toto číslo nemáte, můžete ho vypočítat spočítáním počtu dvojitých uvozovek v řetězci.

EDIT:

Chcete-li spočítat počet záznamů, spočítejte " :

from (select aev.*,
             (length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
      from ch_arf_entry_values aev
     ) aev



  1. Jak mohu získat hash celé tabulky v postgresql?

  2. Na Duplicate Key Update to samé jako vložení

  3. Modelování produktů s výrazně odlišnými sadami potřebných informací a jejich propojení s řádkovými položkami?

  4. získat ID posledního vloženého záznamu bez použití mysql_insert_id()