Необходимо изменить запрос MYSQL с помощью @, так как мы обновили нашу версию Mysql - PullRequest
0 голосов
/ 17 января 2019

Мы обновили наш драйвер Mysql до

Имя базы данных MySQL База данных версии 5.6.10-log Имя драйвера MySQL-AB Драйвер JDBC

Мы использовали более старую версию, но никто не знает, что это была за версия, так как эта машина DEAD. Запрос ниже выполняется на нашем веб-сайте 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 лучше меня (большинство людей), пожалуйста, помогите мне решить эту проблему. Я уверен, что вы найдете больше вопросов с запросом, поэтому любая помощь приветствуется.

Заранее спасибо Andrea

1 Ответ

0 голосов
/ 17 января 2019

Иногда возникает проблема при запуске нескольких запросов в одном запросе.Если это проблема, вы можете решить эту проблему, установив начальное значение в запросе:

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.

...