Mysql 是否使用sql查询删除表中的最后一行?

Mysql 是否使用sql查询删除表中的最后一行?,mysql,Mysql,我正在尝试使用MySql查询删除数据库中名为marks的表中的最后一条记录。有人试图这样做。我还尝试了本地主机。我为此尝试的查询如下: DELETE MAX(`id`) FROM `marks`; 表中有8列。我想删除最后一列,但不指定delete FROM marks,其中id=8;删除第8条记录后,我想删除第6条之后的第7条记录,依此类推,直到第一条记录,而无需手动指定 请用示例编码帮助我解决这个问题。提前感谢。如果id是自动递增的,那么您可以使用以下命令 delete from mark

我正在尝试使用MySql查询删除数据库中名为marks的表中的最后一条记录。有人试图这样做。我还尝试了本地主机。我为此尝试的查询如下:

DELETE MAX(`id`) FROM `marks`;
表中有8列。我想删除最后一列,但不指定delete FROM marks,其中id=8;删除第8条记录后,我想删除第6条之后的第7条记录,依此类推,直到第一条记录,而无需手动指定

请用示例编码帮助我解决这个问题。提前感谢。

如果id是自动递增的,那么您可以使用以下命令

delete from marks
order by id desc limit 1

@Abhshek的答案是正确的,适合您,但是如果id不是递增的,您也可以尝试以下代码

DELETE FROM MARKS WHERE ID=(SELECT MAX(id) FROM MARKS)

这不是最好的,而是不同的解决方案

DELETE FROM marks 
WHERE  id = (SELECT id 
             FROM   marks 
             ORDER  BY id DESC 
             LIMIT  1); 
试试这个:

 $check = $db->prepare("SELECT `file` FROM `marks` WHERE `id` = ?");
    $check->execute(array($id));
    while ($checks=$check->fetchObject()) {
        $unlink = unlink($uploadDir.$checks->file);
    }
其中:

uploadDir是您的目录

$checks->file是您的文件名,保存在数据库中

$id是要删除文件的id行


确实对我有用。。。非常感谢。这正是我需要的东西。。。非常感谢。again@AbhikChakraborty不允许在sql server中使用它?@tichra上面的查询特定于mysql,但是在sql server上的相同操作将与从标记中删除相同,其中id在select top 1 id from marks order by id desc中我已经尝试过此逻辑。它也不工作,因为不是自动的increment@Chintan7027by这个方法的结果是什么?它什么也不返回。。。显示此错误==>1093-您不能为从子句中更新指定目标表“标记”。此逻辑适用于我。我使用=从+表格子类别中删除+其中+键位置+=从+表格子类别中选择最大+键位置+其中+键位置类别+其中+键位置类别ID+='+CAT ID+'和+键位置子类别ID+='+scat ID+';你能进一步解释一下吗?如果id不是递增的,你是什么意思?是什么使您的查询与您所引用的查询不同?答案是在SQL中请求的,而不是PHP脚本。。。