use*_*208 1 java jdbc prepared-statement
我遇到了一些问题,我确信这是一些愚蠢的事情.
所以我有一个类似的查询
SELECT name, id, xyz FROM table ORDER BY ?
Run Code Online (Sandbox Code Playgroud)
然后在路上设置了?做一个
ps.setString(1, "xyz");
Run Code Online (Sandbox Code Playgroud)
我在控制台中输出查询和xyz的值.当我遍历从PreparedStatement返回的ResultSet时,值的顺序不正确.它们处于返回的顺序,就像我已经关闭了ORDER BY子句一样.当我将查询和值复制/粘贴到TOAD时,它会运行并正确返回.
为什么ResultSet没有以正确的顺序返回的任何想法?
Tom*_*ine 13
数据库将查询为
SELECT name, id, xyz FROM table ORDER BY 'xyz'
Run Code Online (Sandbox Code Playgroud)
也就是说,按常量表达式排序(在这种情况下为字符串'xyz').任何订单都会满足.
?对于参数,您不能使用它来插入列名.生成的语句看起来像
SELECT name, id, xyz FROM table ORDER BY 'xyz'
Run Code Online (Sandbox Code Playgroud)
以便您的条目按字符串'xyz'排序,而不是按列xyz的内容排序.
归档时间: |
|
查看次数: |
3292 次 |
最近记录: |