Ill*_*ter 7 mysql lastinsertid
我正在尝试检索一个表A的id以插入另一个表B.我不能使用last_insert_id(),因为我没有在A中插入任何内容.有关如何做到这一点的任何想法?
$n = mysql_query("SELECT max(id) FROM tablename"); 似乎不起作用,也不起作用
$n = mysql_query("SELECT max(id) FROM tablename GROUP BY id");
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 29
在MySQL中,这确实从id列返回最高值:
SELECT MAX(id) FROM tablename;
Run Code Online (Sandbox Code Playgroud)
但是,这不会将该ID放入$n:
$n = mysql_query("SELECT max(id) FROM tablename");
Run Code Online (Sandbox Code Playgroud)
要获得该值,您需要执行以下操作:
$result = mysql_query("SELECT max(id) FROM tablename");
if (!$result) {
die('Could not query:' . mysql_error());
}
$id = mysql_result($result, 0, 'id');
Run Code Online (Sandbox Code Playgroud)
如果要从A获取最后一个插入ID,并将其插入B,可以使用一个命令执行:
INSERT INTO B (col) SELECT MAX(id) FROM A;
Run Code Online (Sandbox Code Playgroud)
小智 10
您可以按 id 对表进行降序排序,并将结果数限制为 1:
SELECT id FROM tablename ORDER BY id DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
但是: 为此请求ORDER BY重新排列整个表。因此,如果您有大量数据并且需要多次重复此操作,我不会推荐此解决方案。
| 归档时间: |
|
| 查看次数: |
79496 次 |
| 最近记录: |