質問:
に基づいて MySQL テーブルから行を削除するにはどうすればよいですか? select ステートメントの結果?
コード (MySQL 5.0):
DELETE FROM posts where>
問題:
上記のコードは MySQL 5.0 では機能しないため、有効な解決策を見つけたいと考えています。目標は、一意の ID を持たない行を削除することです。
答え:
Using IN:
MySQL 内、サブクエリは結果セットを返します。 DELETE ステートメントでサブクエリの結果を使用するには、WHERE 句で等号 (=) の代わりに IN 演算子を使用する必要があります。
修正コード:
DELETE FROM posts WHERE id IN ( SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 ) )
追加考慮事項:
DELETE FROM posts p1 WHERE p1.id = ( SELECT p2.id FROM posts p2 WHERE p2.id = p1.id GROUP BY p2.id HAVING COUNT(p2.id) > 1 )
以上がSelect ステートメントの結果に基づいて MySQL テーブルから行を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。