首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >prepare语句的问题

prepare语句的问题
EN

Stack Overflow用户
提问于 2011-04-23 05:14:33
回答 3查看 508关注 0票数 0
代码语言:javascript
复制
preparedStatement = connection.prepareStatement("select fname,lname, "
                    + "sportman_code,start,finish,salary,amount,number,pnumber "
                    + "from sportman,customer "
                    + "where customer.customer_code = "
                    + "sportman.customer_code order by ? limit ?,?");



            preparedStatement.setString(1, "fname");
            preparedStatement.setInt(2, 0);
            preparedStatement.setInt(3, 9);
            resultSet = preparedStatement.executeQuery();

order by不起作用。为什么?

当我用fname代替的时候?它可以正常工作。

代码语言:javascript
复制
"sportman.customer_code order by fname limit ?,?");

我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-23 05:16:47

您不能绑定诸如表名或列名之类的标识符,只能绑定要插入、比较等的值

票数 1
EN

Stack Overflow用户

发布于 2011-04-23 05:20:18

您的ORDER BY可以工作,但并不是您期望的那样。当您使用

代码语言:javascript
复制
 preparedStatement.setString(1, "fname");

它会像这样下订单

代码语言:javascript
复制
 ORDER BY 'fname'

也不是你想的那样

代码语言:javascript
复制
 ORDER BY fname

然后,问题中的代码将类似于按字母顺序对M&M包进行排序

票数 2
EN

Stack Overflow用户

发布于 2011-04-23 05:21:58

绑定适用于查询中的文字,而不适用于关键字或标识符。如果希望排序字段是动态的,则需要使用另一种方法对其进行清理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5760125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档