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