2017-06-16 69 views
0

大家好!我需要一些帮助。所以我的问题=标题。如何使用最小(最低)的ID删除数据库中的一行?我指的是以下几点:如何使用最小的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"; 
    } 
+2

在(因此)我们希望你去尝试自己**编写代码**。后** [做更多的研究](//meta.stackoverflow.com/questions/261592)**如果你有问题,你可以**发布你已经尝试**与清楚的解释是什么是'工作**并提供[** Minimal,Complete和Verifiable示例**](// stackoverflow.com/help/mcve)。我建议阅读[问]一个好问题和[完美问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。另外,一定要参加[游览]并阅读[this](// meta.stackoverflow.com/questions/347937/)**。 –

+0

'if(statement)' - 嗯......这是什么?看起来像伪代码。如果不是,那么'statement'被视为一个常量。 –

+1

您也在查询两次,应该向您发出通知/警告。 –

回答

1

可以在delete使用limitorder by

delete t 
    from t 
    order by id 
    limit 1; 

编辑:

必须指出的是,这个答案之前在添加PHP之前基于原帖。

+1

考虑到你的代表戈登,我觉得你错过了什么或没有故意提及它。你应该再次看到他们的PHP并按照[此评论](https://stackoverflow.com/questions/44588212/how-to-delete-row-from-the-database-with-smallest-id#comment76164170_44588212)我离开了在这个问题下,另一个在上面。 –

+0

所有关于答案的看法都是什么原因。这(和其他人)正确回答问题 - 尤其是在编辑之前最初提出的问题。 –

+0

再次戈登。鉴于你的代表...我觉得我不必详细说明。我可以证明降薪。我觉得现在你已经在downvote之后出现了,而不是在半小时前从我原来的评论中发现。 –

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"; 
} 

你想查询第一个查询的结果,而不声明。 这就是为什么你有空的查询错误。

我修正了上面的问题,现在应该可以正常工作。

+0

它说:警告:mysqli_query():空查询 – AndrewGG

+2

错误代码:1111.至少在MySQL上使用组函数无效5.7 – RiggsFolly

+0

@RiggsFolly修复它。 – FMashiro

0

试试这个

DELETE FROM table ORDER BY ID ASC LIMIT 1