我一直在阅读有关mysqli multi_query的内容并且找不到办法(如果可能的话)
$db->multi_query("SELECT id FROM table WHERE session='1';
UPDATE table SET last_login=NOW() WHERE id=table.id");
它似乎无法奏效。我试图使用第一个查询的ID来更新第二个。这可能吗
答案 0 :(得分:0)
UPDATE table
SET last_login = NOW()
WHERE id IN (SELECT id
FROM table2
WHERE session = '1')
这将使用session ='1'更新所有记录。当然假设子查询返回多个结果集,从我所看到的结果集中,它将会发生。
这也允许您删除multi_query()
方法,因为它只是一个查询。
回复评论:
根据http://lists.mysql.com/mysql/219882,这似乎不可能与MySQL。虽然我想你可以选择类似的东西:
$db->multiquery(
"UPDATE table
SET last_login = NOW()
WHERE id IN (SELECT id
FROM table2
WHERE session = '1');
SELECT id
FROM table2
WHERE session = '1';"
);
哪个很丑,两次执行相同的查询,但应该做你想做的事。