0
我解釋了這個問題,以及我試圖實現的解決方案。我有一個包含大量數據的表,並且我想要刪除每行5行4行。目的是要有一個更輕的桌子。Mysql,每行刪除幾行N行
這是我的要求:
SET @var_name = -1;
DELETE FROM myTable
WHERE id IN
(
SELECT id FROM myTable HAVING (@var_name := @var_name +1) % 5 !=0
)
選擇操作正常工作,但連同DELETE操作我得到這個消息
#1093 - Table 'myTable' is specified twice, both as a target for 'DELETE' and as a separate source for data
我明白其中的含義:我無法刪除表在請求中。解決方法是可能的:在控制檯中獲取完整列表,然後執行DELETE操作。最好在一條線上執行。
感謝您的幫助。 非常感謝
請解釋爲什麼你使用'IN' 「刪除4行,每行5列」 – e4c5
,你可以直接寫'ID HAVING ...' –
我沒有使用具有ID成功。最後Glufu的解決方案是好的。謝謝 – LyonL