根据特定条件运行SQL查询,只删除x行


Run a SQL query based on certain criteria and delete only x rows?

我知道可以运行一个查询,在提交时,如果某一行符合特定条件(例如delete from table where id=$id),则可以删除该行。我有一个场景,当我在表单上按下submit时,我希望有一定数量的行与基于另一个值的条件相匹配。

例如$millevel = 100;,我希望能够在城市表中搜索WHERE nation='$nation'行,然后删除$millevel 中定义的行数

这有可能吗?如果有,有可能随机进行,这样它就不会按顺序删除,而是四处跳跃吗?

您可以使用LIMIT关键字限制要删除的条目数:

 $sql = 'DELETE FROM my_table WHERE id='.intval($id).' LIMIT '.intval($maxentries);

你可以添加一个ORDER BY RAND()来做一些随机的事情,但要注意性能(如果你有一个大表,会很慢)

请参阅官方文档