id 更改时如何将用户定义的变量值设置为零?

绝对的白痴

每当以下查询中的 id 更改时,我都会尝试将变量值设置为零。

我试图在没有性能问题的单个查询中实现这一点。因为在实际查询中,它有超过 10,000 条记录。这是我到目前为止所拥有的

示例表:

       create table Test(id integer, title varchar(100));
       insert into Test(id, title) values(1, "Hello");
       insert into Test(id, title) values(1, "Hello");
       insert into Test(id, title) values(1, "Hello");
       insert into Test(id, title) values(1, "Hello");
       insert into Test(id, title) values(2, "Hello");
       insert into Test(id, title) values(2, "Hello");
       insert into Test(id, title) values(1, "Hello");

这是我的查询:

    select a0.id,a0.title,@a:=@a+a0.id as val from
    (select * from Test order by id) as a0 
    left join
    (select id, @a:=0 from Test group by id) as a1
     on
    a0.id=a1.id

-- 执行上述查询得到的输出:

+----+-------+-----+
| id | title | val |
+----+-------+-----+
|  1 | Hello |   1 |
|  1 | Hello |   2 |
|  1 | Hello |   3 |
|  1 | Hello |   4 |
|  1 | Hello |   5 |
|  2 | Hello |   7 |
|  2 | Hello |   9 |
+----+-------+-----+

——我想要达到的目标:

+----+-------+-----+
| id | title | val |
+----+-------+-----+
|  1 | Hello |   1 |
|  1 | Hello |   2 |
|  1 | Hello |   3 |
|  1 | Hello |   4 |
|  1 | Hello |   5 |
|  2 | Hello |   2 |
|  2 | Hello |   4 |
+----+-------+-----+
巴马

使用另一个变量来保存上一行的 ID。然后可以测试当前ID是否相同。

当它更改时,重置@a为当前 ID(不是0)。

SELECT a0.id, a0.title, @a := IF(a0.id = @last_id, @a + a0.id, a0.id) AS val, @last_id := a0.id
FROM (SELECT * FROM Test ORDER BY id) AS a0
CROSS JOIN (SELECT @a := 0, @last_id := null) AS vars

演示

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将javascript变量值设置为html元素的id属性

如何将变量值作为 documentGetElementByID 的 ID 传递

如何将变量值设置为每行零

如何将用户显示为localhost:3000:/:id

如何将用户定义的变量值限制为jmeter中的特定线程组

如何从ajax响应中为不同的id打印不同的变量值?

在idignigner中如何在登录期间将用户ID设置为会话,并使该用户ID具有多种功能?

Discord.py 将用户 ID 设置为参数

上传器:如何将自定义文件夹名称设置为与用户ID相同?

如何在 DJANGO 的自定义 ADMIN 页面中将用户“id”和用户“profile”更新为超级用户

如何将用户ID分配给外键

如何将用户 ID 传递给 Laravel 表单

使用dplyr更改第一行group_by主题ID的变量值

当某个变量值更改时如何触发onPerformSync

如何在 gsp 页面上使用变量值作为 HTML 元素的 id?

用值出现次数替换ID变量值

Flutter:如何将 firebase uid 设置为用户文档 ID?

如何将TypeScript变量值设置为CSS属性?

Yii2- 将用户 ID 设置为 null 给我非对象错误

赋值后变量值仍为零

如何使用用户输入定义变量值

如何知道为联合设置了哪个变量值?

如何将用户表中的ID插入其他表

如何将用户ID和请求数据传递给序列化器?

如何将用户ID保存在猫鼬钩子中?

Express APP如何将用户从服务器端重定向到/:id路径

如何将用户 ID 添加到按钮交互中?

我们如何将用户 ID 传递到 app.js 中的路由中?

如何将 id 属性设置为表?