我们将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更为了解,请帮助我解决此问题。我相信您会在查询中发现更多问题,因此欢迎您提供帮助。
预先感谢 安德里亚
答案 0 :(得分:0)
有时在单个查询中运行多个查询会出现问题。如果是这样,可以通过在查询中设置初始值来解决此问题:
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
的子查询。