DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
私はテーブルを持っていますmytable
。上記のクエリはエラーをスローしています。
FROM句で更新するターゲットテーブル'mytable'を指定することはできません
DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
私はテーブルを持っていますmytable
。上記のクエリはエラーをスローしています。
FROM句で更新するターゲットテーブル'mytable'を指定することはできません
MySQLドキュメントから:
現在、サブクエリでテーブルから削除して同じテーブルから選択することはできません。
幸い、サブクエリは必要ありません。ただ行う:
DELETE FROM mytable WHERE roll=1
起動するのははるかに短く、明確です。
どうしてこんなことをしてみませんか?
DELETE FROM mytable WHERE roll=1
書いてみませんか
DELETE FROM mytable WHERE roll=1
?上位のクエリが同じテーブルを変更するときに、MySqlがサブクエリのテーブルからフェッチすることを好まないため、エラーが発生します。
なぜ単純ではないのですか?
DELETE FROM mytable WHERE roll=1
なぜサブクエリを使用しているのですか?あなたはそれをこのように書くことができます:
DELETE FROM mytable WHERE where roll=1;