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

1つの列のみで区別-最初の重複行のみを表示

    おそらく別の列を追加する必要があります。 GROUP BYを使用して、account_idごとに個別のレコードを取得できるようになりました ただし、すべての非集計列の結果はあいまいになる可能性があります。すべてのaccout_idのどのレコードが「最初」であるかを判断するには、承認する順序またはグループ内のインジケーターが必要です。各グループのどのレコードが最初のクエリであるかを列にマークすることで、簡単になります。それがないと、どのレコードが「最初」であるかを問い合わせる順序を受け入れる必要があります。 full_nameのアルファベット順の例:

    SELECT account_id, 
           full_name, 
           email, 
           login, 
           phone, 
           updated_at, 
           last_request_at, 
           unconfirmed_email 
      FROM table1 WHERE full_name IN (
        SELECT MIN(full_name) 
          FROM table1 
          GROUP BY account_id 
          WHERE id < '300'
      )
    


    1. データベース内の削除されたレコードの数値主キーは、将来の新しいレコードに再利用されますか?

    2. 1対多の関係を維持する場合の制約違反

    3. ProxySQLノードのパフォーマンスはどれくらいですか?

    4. PHPのaddslashesとmysql(i)_escape_stringの違いは何ですか?