为什么我的上层函数在MySQL Workbench中工作但在Java / JDBC中不起作用

时间:2016-11-04 21:09:58

标签: java mysql jdbc

我在MySQL中有一个小写单词表,我希望得到一个随机单词。这是我使用的查询,它在MySQL和Java中都可以正常工作:

select word from words order by rand() limit 1

但是,我也希望将单词作为大写字符串。我试过这个:

select upper(word) from words order by rand() limit 1

它在MySQL Workbench中完美运行,但是当我在Java中使用resultSet.getString("word")时会引发异常:

SQL Exception: Column 'word' not found.

为什么会发生这种情况,我该如何解决?我可以在Java中将其转换为大写但我想知道为什么会发生这种情况。

1 个答案:

答案 0 :(得分:1)

哦,我明白了。

在结果集中,列名称现在为upper(word)而不是word

所以我要么将查询更改为:

select upper(word) as `word` from words order by rand() limit 1

或者将我的Java代码更改为:

resultSet.getString("upper(word)")