我正在實現一個功能,其中必須根據同一表的下一行中存在的值刪除當前行。在MySQL中水平自連接表當前行和下一行
我有列記錄:id
,created_at
和mark
。
我需要刪除所有記錄,
WHERE currentrow.mark != nextrow.mark or (currentrow.mark = nextrow.mark and currentrow.created_at= '2000-01-01 00:00:00.000')
即只與下一行的記錄沒有相同的標誌或下一行的記錄具有相同的標誌和created_at = '2000-01-01 00:00:00.000'
id created_at mark
235 1990-01-01 00:00:00.000 5 /delete
236 1990-01-01 00:00:00.000 5 /delete
237 1990-01-01 00:00:00.000 5
238 2016-10-10 23:45:40.000 5
id created_at mark
312 1990-01-01 00:00:00.000 8 /delete
313 2016-01-09 18:00:00.000 6
314 1990-01-01 00:00:00.000 4 /delete
315 1990-01-01 00:00:00.000 7
316 2016-10-10 23:45:40.000 7
請幫助檢索表中的每一行在結果集中水平連接同一表的下一行。加入下一行
定義'下一個'! – Strawberry
您爲要刪除的記錄指定的條件以及示例數據中的值爲10年。這是什麼? – Bridge
我可以看到在這個問題相同的示例數據http://stackoverflow.com/questions/41485396/deleting-record-in-sql-depending-on-next-record?noredirect=1#comment70176721_41485396。但是這被標記爲'sql-server' – Viki888