我已经看到一些使用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)(请参阅下面的链接..有关我需要此的问题)
但我仍然没有得到查询..一些请帮助
提前致谢。
它会简单地初始化值(@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] 删除。
我来说两句