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

时间:2019-01-17 16:45:08

标签: mysql sql railo

我们将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更为了解,请帮助我解决此问题。我相信您会在查询中发现更多问题,因此欢迎您提供帮助。

预先感谢 安德里亚

1 个答案:

答案 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的子查询。