带有SET变量陈述的Mysqli查询(即多个查询)
问题描述:
我想设置一个变量以在mysqli查询中使用。这不起作用。在使用mysqli之前,我用来设置查询调用。我玩弄了db-> multi_query($ sql),但没有运气。那里的任何人都知道如何做这项工作,包括一套陈述?带有SET变量陈述的Mysqli查询(即多个查询)
$sql = 'SET @rownum := 0;';
$sql .= 'SELECT @rownum :[email protected] + 1 AS Rank, User_Id, COUNT(User_ID) AS Block_Count
FROM Block_Owners;
$stmt = $db->prepare($sql);
$stmt->bind_param('ii', $world, $userId);
// execute the query
$stmt->execute();
答
做它在两个单独的查询:
$db->query('SET @rownum := 0');
$sql = 'SELECT @rownum :[email protected] + 1 AS Rank, User_Id, COUNT(User_ID) AS Block_Count FROM Block_Owners'
$stmt = $db->prepare($sql);
$stmt->bind_param('ii', $world, $userId);
$stmt->execute();
但是请注意,该查询要运行总是会返回一行(与Rank = 1
),因为您使用聚合功能,无需GROUP BY
。
+0
Perfect在单个查询中执行该操作。不用担心群组,实际查询更大,我只是简化了一下,使问题更容易理解。感谢Quassnoi! – Codezy 2009-11-20 23:41:01
您可能可以使用'FROM BLOCK_OWNERS'(SELECT @rownum:= 0)r;' – 2009-11-21 00:25:07