[英]Get Last Entry in a MySQL table
我基本上是在嘗試制作一個“目標”欄。 目標是通過獲取我在 MySQL 表中所做的最后一個條目來確定的。 因此,我想獲取最后一個條目的 ID。
如何獲取表中的最后一個條目,然后從最后一個條目中獲取 id?
(使用 PHP)
獲得最大的身份:
SELECT MAX(id) FROM mytable
然后得到行:
SELECT * FROM mytable WHERE id = ???
或者,您可以在一個查詢中完成所有操作:
SELECT * FROM mytable ORDER BY id DESC LIMIT 1
您可以使用LAST_INSERT_ID()
函數。 例:
$sql = "SELECT * FROM mytable WHERE id = LAST_INSERT_ID()";
您可以使用此查詢來獲取您希望使用此示例中使用的SQL查詢所需的結果:
$sql = "SELECT user_id FROM my_users_table ORDER BY user_id DESC LIMIT 0,1";
如果該字段是自動遞增的,那么您可以使用LAST_INSERT_ID
要可靠地執行此操作,您必須在表中包含一些字段,以便確定哪個字段是最后一個。 這可以是添加記錄時的時間戳,不斷增加的序列號(尤其是自動遞增序列號)等。
然后,讓我們假設它是一個名為“rec_seq”的序列號。 你會寫一些類似的東西:
select * from my_table
where rec_seq=(select max(rec_seq) from my_table)
以相反的順序從表中選擇所有字段並設置限制0,1這將為您提供表字段數據的最后結果
獲取用戶的最新條目
'SELECT user_id FROM table_name WHERE user_id = '.$userid.' ORDER BY user_id DESC LIMIT 1';
上面的答案顯示了如何通過 id 獲取最新條目。 如果使用非遞增 ID(例如 UUID)作為鍵,這將不起作用。 在那種情況下,可以改用created_at
列。
-- highest id
SELECT * FROM some_table ORDER BY id DESC LIMIT 1;
-- latest created at date
SELECT * FROM some_table ORDER BY created_at DESC LIMIT 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.