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

SQL:2つのフィールドに基づく選択から重複する値を削除します

    この特定の質問については、max(language) dはeより小さいため、機能するはずです。

    編集(壊れないソリューション):

    max(case language when 'default' then 0 else 1 end)を追加します。

    Edit2(さらに良い):

    max(case language when 'english' then 1 else 0 end)を追加します。 そのため、in()に言語を追加しても、値が重複することはありません。 セクション

    番号を編集2:

    私が約束したように、ここで私は新鮮な新しい月曜日の朝の心を持っており、あなたのニーズに合った正しい質問をしました:-)

    試してみてください

    SELECT value,
           CASE group_concat(language)
             WHEN 'default' then 'default'
             ELSE LTRIM(REPLACE(group_concat(language SEPARATOR ' '),'default',''))
           END as language,
           externID
    FROM demo
    WHERE externID = 10
    AND   language in ('default','english')
    GROUP BY value;
    

    説明: GROUP_CONCAT および LTRIM




    1. Postgresで日付形式を変更するにはどうすればよいですか?

    2. 重みを考慮してランダムに1つの行を選択するにはどうすればよいですか?

    3. PHP/mySQL-ネストされた行を多次元配列にフェッチする方法

    4. MySQL 1つの行の一意性に基づいてDISTINCTの複数の列を選択しますか?