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

MySQLの日時と前の行との比較

    これは、テーブルを順次スキャンし、MySQL変数を使用して処理できます。テストできます(更新 SQL-fiddle

    SELECT date2
         , dd 
         , DATE_FORMAT(dd, '%b %e, %Y') AS final_date
         , date1_duplicate
         , date1_was_null
    FROM
    ( SELECT date2
           , COALESCE( (date1 = @d OR date1 = @prev), FALSE)
               AS date1_duplicate
           , (date1 IS NULL)               AS date1_was_null
           , @d := CASE WHEN (date1 = @d OR date1 = @prev) 
                     THEN date2 
                     ELSE COALESCE(date1, date2) 
                   END AS dd
           , @prev := date1 AS pre
      FROM tableX AS t
        CROSS JOIN
          ( SELECT @d := DATE('1000-01-01')
                 , @prev := @d 
          ) AS dummy
      ORDER BY date2 ASC 
    ) AS tmp
    ORDER BY date2 DESC
    ;
    



    1. 行をコピーしますが、新しいIDを使用します

    2. 更新後のMysqlトリガーは、条件付きの別のテーブルに挿入されます

    3. MySQLから整数列と数値列をPHPの整数と数値として返すにはどうすればよいですか?

    4. パフォーマンスの驚きと仮定:GROUP BY vs. DISTINCT