繁体   English   中英

PHP和Mysqli - 多个查询合二为一?

[英]PHP & Mysqli - Multiple querys in one?

我需要从插入的最后一行表中获取ID(一列)。 我想知道是否有某种方法可以将其嵌入另一个查询中,以避免出现两个不同的查询? 它似乎更简单,我相信我以前见过它。

像这样的东西:

$query = "INSERT INTO a_table (x, y) VALUES ((SELECT id FROM another_table ORDER BY id DESC), 'y...')";

任何想法如何做到这一点? 谢谢。

如果您希望获得脚本创建的最新记录,那么首先应该不要这样做。 如果您的脚本的另一个实例同时创建了一条记录,该怎么办?

mySQL的LAST_INSERT_ID()将返回通过此特定连接创建的最后一个ID 但是,您必须在插入语句后立即调用它。

如果实际上要获得最高的ID,GSto的答案将为您服务。

INSERT INTO a_table (x, y) VALUES (SELECT max(id), 'y...' FROM another_table);

是的,MySQL有一个INSERT .. SELECT语句:

例:

INSERT INTO a_table(x,y)SELECT id,'y'FROM another_table ORDER BY id DESC

尽管要记住,除非您有一个auto_incrementing ID字段,否则order by子句在这里毫无意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM