[英]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.