sql >> データベース >  >> RDS >> Mysql

MySQLは、ごちゃ混ぜのテキストの列内の引用符で単語を選択します

    あなたが望むものを表現するためのより良い方法を見つけるべきですが、私は次のことが近いと思います:

    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
    



    1. 複数のID値を受け入れるT-SQLストアドプロシージャ

    2. ノードMysql非同期複数クエリ

    3. PostgreSQLで2つの日付の間の結果を取得する

    4. MySQL InnoDB:非主キーを自動インクリメントします