2009-11-20 84 views
2

我想設置一個變量以在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(); 
+1

您可能可以使用'FROM BLOCK_OWNERS'(SELECT @rownum:= 0)r;' – 2009-11-21 00:25:07

回答

6

做它在兩個單獨的查詢:

$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