簡體   English   中英

如何在MySQL中獲取最后4個插入的ID

[英]How to get last 4 inserted ID's in MySQL

我想從數據庫表中獲取最后插入的4個ID,基本上應該可以獲取4個最新/最近添加的字段。

我知道PHP中有一個lastInsertId()函數可以獲取最后一個。

例如,如果我將最后插入的ID存儲到這樣的變量中:

$productID = $db->lastInsertId(); 

但是,如何獲得最后插入的4個ID,而不僅僅是最后一個?

有沒有解決的辦法?

假設有一個ID,它是每個記錄的主鍵。

編輯

我的ID字段是自動遞增的,我之前已經提到過

select WHATEVER_FIELDS from TABLE order by IDFIELD desc limit 4

MYSQL:LAST_INSERT_ID功能

我將把這里提到的一些筆記帶到這里

  • 如果最新的INSERT或UPDATE語句設置了多個AUTO_INCREMENT值,則LAST_INSERT_ID函數將僅返回第一個AUTO_INCREMENT值。
  • LAST_INSERT_ID函數將逐個客戶端返回最后一個AUTO_INCREMENT值,因此它將僅為您的客戶端返回最后一個AUTO_INCREMENT值。 該值不受其他客戶端的影響。
  • 執行LAST_INSERT_ID函數不會影響LAST_INSERT_ID返回的值。

因此,為了檢索最后的4個插入的ID,您必須檢查正在執行的每個插入/更新的ID。

選擇最后4行不是一種選擇-考慮一下:*人A插入具有autoid 1的行*人B插入具有autoid 2的行*人A插入具有autoid 3,4的行*人B插入具有autoid 5的行*人A插入了行具有autoid 6的行

如果您是A人,並且在每次插入后檢查最后插入的ID,您將得到: 1, 3, 4, 6如果您是B人,您將得到2, 5如果您是A人並使用該查詢選擇您將得到3,4,5,6

還有一個-如果您的行沒有自動增加ID,這是我在做的事情:

  • 添加帶有索引的列(字符32)
  • 在插入時,用一些數據填充該列(唯一);
  • 插入后-SELECT行,其中column是該數據
  • 將行列更新為空(現在不需要)

最后插入的ID只有1個,即在每次查詢后插入的ID。 因此, lastInsertId()返回該ID,並在插入后調用它。

這意味着您必須在每個插入查詢之后調用lastInsertId() 4次,並將其結果存儲在數組中。

編輯 :我知道可以使用SELECT查詢最后4個ID,但這不是OP的要求。 如果OP想要DB中的最后4個ID,而不是插入的最后4個ID,則應該以完全不同的方式形成問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM