这似乎很简单,但它失败了.我想要做的就是使用下面的代码删除第一行以外的所有行.
$sql = "DELETE FROM ".TABLE_PREFIX."news WHERE course_id = $course_id LIMIT 1,18446744073709551615";
$result = MysqL_query($sql, $db);
如果我这样做……
$sql = "SELECT news_id FROM ".TABLE_PREFIX."news WHERE course_id = $course_id LIMIT 1,18446744073709551615";
$result = MysqL_query($sql, $db);
while ($row = MysqL_fetch_assoc($result)) {
echo $row['news_id'] . '<br>';
}
除了第一个news_ids之外,所有news_ids都被回应.当select的同一语句有效时,为什么delete语句不起作用?
解决方法:
由于limit关键字附近的语法不正确,删除语句无法正常工作…你不能做LIMIT 1,18446744073709551615 …当与DEELTE一起使用时,LIMIT必须后跟一个数字
参考:DELETE MYSQL
只有在SELECT语句中才能有LIMIT 1,18446744073709551615子句
参考:SELECT MYSQL
您可以做的是找到要删除的第一行的course_id(并且希望如果表格设置正确并且它是表格和自动增量的主键),请执行以下操作:
$sql = "DELETE FROM ".TABLE_PREFIX."news
WHERE course_id >=".COURSE_ID_YOU_WANT_DELETED.";
或者这也适用:
$sql = "DELETE FROM ".TABLE_PREFIX."news
WHERE course_id !=".COURSE_ID_YOU_WANT.";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。