2017-06-16 64 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