jdbc中无法识别sql语句中的变量

需求:
有一张表记录人员的信息,现在想求人员年龄的中位数,采用的方法为:
先将表中的年龄排序并且给排序后的年龄加上行序返回一个中间表,然后再查这个中间表,返回行号为中间值的年龄的平均值。
SQL代码如下;

set @rowindex = 0;
select avg(temp2.age) from 
(select @rowindex:=@rowindex + 1 as rawindex,student.age as age from student order
by student.age) AS temp2 where temp2.rawindex IN (FLOOR((@rowindex+1) / 2) ,
CEIL((@rowindex+1) / 2));

问题:
这段sql语句中因为含有sql变量@rowindex,用来记录行序,但其在mysql中能正确返回结果,但在java代码里报错,提示语法错误,希望各位码友指教,如何解决?
1.sql中执行的正确结果(17行红叉不影响,因为是17行上面的sql导致的)

clipboard.png
2.java中的代码以及报错:

clipboard.png

JDBC连接Mysql的驱动mysql-connector用的最新的

clipboard.png

阅读 3.1k
1 个回答

你这实际上是多条SQL语句,默认无法一次性执行多条SQL语句,但好像可以修改jdbc连接设置,具体请度娘。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题