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

MySQLでCTEを使用して更新または削除する

    CTEは更新できないため、行を削除するには元のテーブルを参照する必要があります。あなたはこのようなものを探していると思います:

    WITH ToDelete AS 
    (
       SELECT ID,
              ROW_NUMBER() OVER (PARTITION BY lastName, firstName ORDER BY ID) AS rn
       FROM mytable
    )   
    DELETE FROM mytable USING mytable JOIN ToDelete ON mytable.ID = ToDelete.ID
    WHERE ToDelete.rn > 1; 
    


    1. MYSQL-テーブルの各カテゴリの最初の4つのレコードを選択します

    2. さまざまな日付範囲のSUMを取得するSQLクエリ

    3. pg_restore:[アーカイバ]ファイルヘッダーでサポートされていないバージョン(1.13)

    4. テーブルの列をカウントするにはどうすればよいですか