Mysql用户定义变量和COUNT

标签 mysql variables count

mysql变量和计数有问题
代码如下:

SELECT @var := 2, @var := @var+2,
count(birey_dil.birey_id) as count,
@var := @var+count(birey_dil.birey_id), 
@var+1
from birey_dil

这是结果集:

+-----------+----------------+-------+----------------------------------------+--------+
| @var := 2 | @var := @var+2 | count | @var := @var+count(birey_dil.birey_id) | @var+1 |
+-----------+----------------+-------+----------------------------------------+--------+
|         2 |              4 |     8 |                                     12 |      5 |
+-----------+----------------+-------+----------------------------------------+--------+

我将 var 设置为 2
然后 2+2 = 4
然后我计算行数,结果是 8

@var := @var+count(birey_dil.birey_id)

返回 4+8 12 但是 @var+1 是 5
为什么 mysql 会这样?
@var+1 现在应该是 13,有没有办法解决这个问题?

最佳答案

试试这个:
SELECT @var+1 FROM<br/> (<br/> SELECT @var := 2, @var := @var+2,<br/> count(birey_dil.birey_id) as count,<br/> @var := @var+count(birey_dil.birey_id),<br/> from birey_dil<br/> )x 似乎mysql首先评估所有@var[+constant];这是有道理的,因为它不需要数据库访问,然后才计算 count(birey_dil.birey_id) .最后它做到了@var := @var+count .

关于Mysql用户定义变量和COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5679694/

相关文章:

java - 有没有办法让@PersistenceContext 变得灵活?

mysql - LEFT JOIN 与 COUNT 出现错误

php - 统计表mysql中的所有项目并获取记录

Java:有没有一种方法可以在不必列出所有文件的情况下查找目录中的文件数?

php - WordPress 显示按类别组织的今日帖子

php - 如何使用 httpClient 和 JSON 从 php 接收数组到 android?

bash - 在 bash 中以某种方式格式化数字

php - 空变量在php中定义

mysql - 优化 innoDB 中的 MySQL LIKE '%string%' 查询

php - 在这种情况下,我该如何根据mysql语句中的计算值对数据进行排序?