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();
订单不起作用。 为什么呢?
当我把fname改为?它工作正常。
"sportman.customer_code order by fname limit ?,?");
我该怎么做?
答案 0 :(得分:2)
你的ORDER BY有效,但并不像你期望的那样。当你使用
preparedStatement.setString(1, "fname");
它会像这样制作一个ORDER BY
ORDER BY 'fname'
并不像你期望的那样
ORDER BY fname
您问题中的代码就像按字母顺序排列M& Ms包
答案 1 :(得分:1)
您不能绑定表名或列名等标识符,只能绑定要插入,比较等的值
答案 2 :(得分:0)
绑定适用于查询中的文字,而不适用于关键字或标识符。如果您希望它是动态的,您将需要使用另一种方法来清理排序字段。