2013-12-22 22 views
0

即时通讯使用Kohana 3.0和MySQL
如何使用DB ::查询(Database :: SELECT,'您的查询');当使用这样的查询:

使用设置查询MySQL - Kohana 3.0

$query = DB::query(Database::SELECT, 
"SET @id_draw=0; 
SELECT * 
FROM 
(
    SELECT a.sender,a.recipient,@id_draw:[email protected]_draw+1 AS id_draw 
      FROM `gifts` a 
      WHERE a.sender = 1499089137 
      AND a.sender = (
       SELECT DISTINCT b.recipient 
       FROM `gifts` b 
       WHERE b.sender = a.recipient 
       AND b.recipient = 1499089137 
      ) 
    GROUP BY a.sender,a.recipient 
)x 
WHERE x.id_draw = RAND()"); 


使用时,我的问题是得到错误:

  • SET @ id_draw = 0;
  • @id_draw:= @ id_draw + 1个AS id_draw
+0

为什么GROUP BY ???不要使用这样的查询。请参阅JOIN。 – Strawberry

+0

@草莓,它只是关于如何在kohana DB ::查询(数据库:: SELECT,'您的查询')使用查询; ??? – AFD

+0

我认为你可以包含SET作为SELECT子查询,但这仍然是一个错误的查询。 – Strawberry

回答

0

实施例的要求:

SELECT something 
     , another_thing 
     , @prev := @curr 
     , @curr := amount 
     , @rank := CASE WHEN @prev = @curr THEN @rank ELSE @rank+1 END rank 
    FROM somewhere 
     , (SELECT @curr := null, @prev := null, @rank := 0) defs 
    ORDER 
    BY another_thing DESC; 
+0

SAME ERROR,kohana查询生成器很奇怪! – AFD

+0

你可以创建这个查询的视图,然后在视图上使用kohana? – Strawberry