簡體   English   中英

如何獲取第一個查詢的ID並將其用於第三個查詢?

[英]How to Get ID of the First Query and Use it to the 3rd Query?

我有一個關於SQL查詢的問題。 我的代碼中有3個Insert查詢。 第一個查詢帶有自動增量ID。

INSERT INTO master_tbl

第二個插入將使用LAST_INSERT_ID()函數從第一個查詢獲取ID。

INSERT INTO process (id_ref, process_id, hot_cold, temp) 
VALUES (LAST_INSERT_ID(), '4', '-', '12')

我的問題是,我有第三個查詢,它也需要使用在第一個查詢中生成的ID作為其id_ref

當我使用LAST_INSERT_ID() ,它獲得的ID是第二個查詢的ID。

關於如何仍能在第一查詢中獲得ID以便在第三查詢中使用的任何建議?

您可以聲明該變量並將第一個查詢ID存儲在該變量中,然后在任何需要的地方使用它。

 After first query as you mentioned you are using the separate queries you can try using select to set the `Last insert id` into the variable and then use that variable as below,

   select @valuetoUse := LAST_INSERT_ID()

或其他方式是使用選擇來獲取代碼中的值,然后將該值作為所有其他值插入。 為了獲得價值,您可以直接select

     SELECT LAST_INSERT_ID()

然后在第二個查詢

   INSERT INTO process (id_ref, process_id, hot_cold, temp) 
   VALUES (valuetoUse , '4', '-', '12')

然后在第三個查詢中再次

   INSERT INTO thirdtable (id_ref, process_id, hot_cold, temp) 
   VALUES (valuetoUse , '4', '-', '12')

有關如何使用用戶定義的變量的更多信息,請參見此處。

功能與@Coder of Code所講述的相同,但使用PHP

嘗試這個

建立連接

$conn = new mysqli($servername, $username, $password, $dbname);

首先插入表1

INSERT INTO master_tbl

然后做

$sql = "SELECT MAX(id) as id from master_tbl";
$result = $conn->query($sql);
$row = $result->fetch_array(MYSQLI_NUM);
$latest_id=$row[0];

$sql = "INSERT INTO process (id_ref, process_id, hot_cold, temp)
 VALUES ($latest_id,'4','-','12')";

if ($conn->query($sql) === TRUE) 
{
    echo "New record created successfully";
}

$sql = "INSERT INTO table3 (id_ref , columns list)
 VALUES ($latest_id,other fields)";

if ($conn->query($sql) === TRUE) 
{
    echo "New record created successfully";
}

暫無
暫無

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

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