gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:23:57 25 4
gpt4 key购买 nike

我看到一些 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 query to fetch limited rows of each type

但我仍然没有收到查询.. 请帮忙

提前致谢。

最佳答案

它简单地初始化了值(@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 限制而使用,或者为了确保变量开始时它们应该在共享连接上。

关于mysql - `(SELECT @rn :=0) var_init` 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22405165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com