私は問題を説明し、解決策を実装しようとしました。私はたくさんのデータを持つテーブルを持っていて、それぞれ5行4行を削除したい。目的はより軽いテーブルを用意することです。Mysqlは、N行ごとに複数の行を削除します
これが私の要求です:SELECT操作が正常に動作しますが、一緒にDELETE操作で、私はこのメッセージ
#1093 - Table 'myTable' is specified twice, both as a target for 'DELETE' and as a separate source for data
を取得
SET @var_name = -1;
DELETE FROM myTable
WHERE id IN
(
SELECT id FROM myTable HAVING (@var_name := @var_name +1) % 5 !=0
)
私が意味を理解する:私は削除することはできません。テーブルをリクエストとして使用します。回避策が可能です:コンソールで全リストを取得し、DELETE操作を実行してください。 1行で実行する方が良いです。
ありがとうございました。 ありがとうございます
なぜあなたは 'IN'を使用している "4行それぞれ5行を削除" – e4c5
を説明し、あなたが直接私が持つIDを使用して成功しなかった' –
... 'HAVING IDを書き込むことができます。最後にGlufuの解は良いものでした。おかげで – LyonL