PHP-Mysql从条目号1000删除到最后一个条目

时间:2013-12-25 00:21:07

标签: php mysql

您好我想在Mysql中使用DELETE语句以删除第1000个条目后的所有条目,但同时按列的降序排序条目...这是我的代码使用:

    mysql_query("DELETE FROM 'tblname' WHERE @i IN (1000,ROW_COUNT()) ORDER BY points DESC");

虽然没有发生错误,但它似乎没有因为某些原因而工作....我在WHERE子句中遇到麻烦...有人可以提供帮助吗?

1 个答案:

答案 0 :(得分:5)

您的表名附近有引号:

mysql_query("DELETE FROM 'tblname' WHERE @i IN (1000,ROW_COUNT()) ORDER BY points DESC");

用反引号替换它们:

mysql_query("DELETE FROM `tblname` WHERE @i IN (1000,ROW_COUNT()) ORDER BY points DESC");

修改(删除记录)

尝试:

mysql_query("DELETE TOP (1000) FROM `tblname` ORDER BY points DESC");

您也可以尝试:

DELETE FROM tablename ORDER BY points DESC LIMIT 1000 *

假设这是一个名为id的列:

mysql_query("DELETE FROM tablename WHERE id > 1000");

这将留下前1,000行并删除所有其他条目。


还有一些例子:

DELETE FROM `table` WHERE `id` < 1000
DELETE FROM `table` WHERE `id` LIMIT 0, 1000
DELETE FROM `table` WHERE ID BETWEEN 1 AND 999

<强>脚注: 如果您正在为表名使用变量(这可能是一种可能性,而不会看到完整的代码),请使用以下内容, IF 就是这种情况;很多人。

$tblname = "your_table_name";
mysql_query("DELETE FROM `".$tblname."` WHERE @i IN (1000,ROW_COUNT()) ORDER BY points DESC");

您还应该考虑将mysqli_*函数与预准备语句或PDO一起使用。 mysql_*函数已弃用,将在以后的版本中删除。