如何从id最小的数据库中删除行?

时间:2017-06-16 11:30:58

标签: php mysql mysqli

大家好!我需要一些帮助。所以我的问题=头衔。如何删除数据库中具有最小(最低)ID的行?我的意思是:

数据库结构:

id   title  desc
21   One    desc1
22   Two    desc2
23   Three  desc3

我需要删除ID为21的行。此ID将始终是动态的。

UPD:这是我的尝试:

$delete_row_query = mysqli_query($conn,"DELETE FROM `$grapht` WHERE id = (SELECT id FROM `$grapht` ORDER BY id ASC LIMIT 1)");

    if(statement) {
        mysqli_query($conn, $delete_row_query);
        echo "CLEANED";
    }

4 个答案:

答案 0 :(得分:2)

试试这个:

DELETE FROM table WHERE id = (SELECT MIN(id) FROM table);

这将删除表中当前ID最低的条目。

修改:

必须注意的是,这个答案是在之后添加PHP之前基于原始帖子的。

编辑2:

在这里解决你的更大问题:

$delete_row_query = "DELETE FROM `$grapht` WHERE id = (SELECT id FROM `$grapht` ORDER BY id ASC LIMIT 1)"

if(statement) {
    mysqli_query($conn, $delete_row_query);
    echo "CLEANED";
}

你试图在没有语句的情况下查询第一个查询的结果。 这就是你得到空查询错误的原因。

我已经修复了它,它现在应该可以正常工作了。

答案 1 :(得分:2)

将您的SQL查询更改为

DELETE FROM `table_name` ORDER BY id LIMIT 1;

修改:

必须注意的是,这个答案是在之后添加PHP之前基于原始帖子的。

答案 2 :(得分:1)

您可以在limit中使用order bydelete

delete t
    from t
    order by id
    limit 1;

修改:

必须注意的是,这个答案是在之后添加PHP之前基于原始帖子的。

答案 3 :(得分:0)

试试这个

DELETE FROM table ORDER BY ID ASC LIMIT 1