没有得到这个mysql查询

时间:2012-11-18 13:52:01

标签: mysql

我没有得到的一部分查询;这些内部联接在做什么?

我有表speeldatum,包含所有数据,在我的project.below查询中正在更改rownum列的值,我怎么理解。在查询中没有内部联接的情况下,rownum列的值为零,我对查询中mysql用户定义的vriable没有正确的理解。

样本输出(不考虑ROWNUM值的顺序)
...., rownum 0 ....

..., rownum 1, ...
... rownum 2, ...

 from speeldatums  as t 
    inner join (select @rownum:=0) as r
    inner join (select @prev:="") as r2
    inner join (select @prevdatum:="") as r3**

完整查询:

'create temporary table rr_prepare ( rownum INT NOT NULL, datum_unix 
   INT(11) NULL, categorie VARCHAR(20) NOT NULL, entry_id INT NOT NULL,

   INDEX(rownum), INDEX(datum_unix), INDEX(categorie), INDEX(entry_id) )
   ENGINE=MyISAM

   select t.*, @rownum:=if(@prev=t.categorie and
   @prevdatum=t.datum,@rownum+1,0) as rownum, @prev:=t.categorie as
   prevcategorie, @prevdatum:=t.datum as prevdatum

   from speeldatums  as t  inner join (select @rownum:=0) as r 
  inner join (select @prev:="") as r2 
  inner join (select @prevdatum:="") as r3 ';

1 个答案:

答案 0 :(得分:0)

连接引入了一些变量并在查询中初始化它们。

您也可以在2个查询中单独执行此操作:

set @rownum:=0;
select @rownum := rownum + 1, .... ;

但是,如果您只想运行一个查询,可以使用子选择在查询中即时声明和初始化变量

... inner join (select @rownum:=0) r ...