((SELECT @rn:= 0)var_init`是做什么的?

莫汉

我已经看到一些使用MySql的查询

(SELECT @rn :=0, @ct := NULL ) var_init

我不知道它的作用..我已经搜索了很长时间,但我仍然没有答案。任何帮助深表感谢 。

如果有人可以向我解释此查询,那将是非常可贵的...

SELECT  * FROM (
            SELECT c. * , @rn := IF(  `type` != @ct , 1, @rn +1 ) AS rownumber, @ct :=  `type`  FROM jb_company c , 
            (SELECT @rn :=0, @ct := NULL ) var_init ORDER BY  `type`
           ) c
WHERE rownumber <=20

我正在使用上面的查询来从表中获取每种类型的有限数量的行(即20)(请参阅下面的链接..有关我需要此的问题)

MySQL查询以获取每种类型的有限行

但我仍然没有得到查询..一些请帮助

提前致谢。

它会简单地初始化值(@rn :=0, @ct := NULL),这将导致别名var_init包含一行,然后将其余行连接到该别名(因此,对行本身没有影响,其他则在开头设置了变量)。

这通常用于避免需要多个语句来设置变量。该单个查询等于:

SET @rn :=0;
SET @ct := NULL;
SELECT  * FROM (
    SELECT c. * ,
      @rn := IF(  `type` != @ct , 1, @rn +1 ) AS rownumber,
      @ct :=  `type`
    FROM jb_company c 
    ORDER BY  `type`
) c
WHERE rownumber <=20

..这是多条语句,通常由于使用代码的API限制而通常使用,或确保变量以与共享连接相同的方式开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章