在我们更新 Mysql 版本时需要使用 @ 更改 MYSQL 查询

Need to change a MYSQL query using the @ as we updated our Mysql version

我们将 Mysql 驱动程序更新为

数据库名称MySQL 数据库版本 5.6.10-log 驱动程序名称 MySQL-AB JDBC 驱动程序

我们使用的是旧版本,但没有人知道那个版本是什么,因为那台机器已经死了。 下面的查询是我们 railo 网站中的 运行。 MySQL 服务器不喜欢 @ 但我不知道如何重写,因为 MySQL 不是我的事,这是很多个月前写的代码。

set @row = 0;

select nf.nid, @row:=@row+1 as ranking from financial nf 
where nf.year = (select distinct year from financial where type = 'Total income' Order by year DESC LIMIT 1) 
and nf.type in ('Total Spend','Total budget (Spend)') 
and nf.nid in (select ft_no from n where ft_type in (1)) 
and nf.value > 0 
order by nf.value desc

如果有人 Mysql 比我(大多数人)更了解,请帮我解决这个问题。我相信您会发现更多有关查询的问题,因此欢迎任何帮助。

提前致谢 安德里亚

有时在单个查询中出现 运行 多个查询的问题。如果这是问题所在,您可以通过在查询中设置初始值来解决此问题:

select nf.nid, (@row := @row+1) as ranking
from financial nf cross join
     (select @row := 0) params
where nf.year = (select max(year)
                 from financial
                 where type = 'Total income'
                ) and
     nf.type in ('Total Spend', 'Total budget (Spend)') and
     nf.nid in (select ft_no from n where ft_type in (1)) and
     nf.value > 0 
order by nf.value desc;

我也简化了 year 的子查询。