Java sql查询语句order by中的条件是否能用一个变量代替?
大致如下publicList<Goods>selectAll(Stringrule){Connectioncon=DBOperate.getConnection();Pr...
大致如下
public List<Goods> selectAll(String rule) {
Connection con = DBOperate.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select * from goods order by ? desc ";
ps = con.prepareStatement(sql);
ps.setString(1, rule);
rs = ps.executeQuery();
}
我这样写的时候会报错,错误如下
(com.microsoft.sqlserver.jdbc.SQLServerException: 由 ORDER BY 编号 1 标识的 SELECT 项包含一个变量,作为标识列位置的表达式的一部分。按照引用列名的表达式排序时,只允许使用变量。) 展开
public List<Goods> selectAll(String rule) {
Connection con = DBOperate.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select * from goods order by ? desc ";
ps = con.prepareStatement(sql);
ps.setString(1, rule);
rs = ps.executeQuery();
}
我这样写的时候会报错,错误如下
(com.microsoft.sqlserver.jdbc.SQLServerException: 由 ORDER BY 编号 1 标识的 SELECT 项包含一个变量,作为标识列位置的表达式的一部分。按照引用列名的表达式排序时,只允许使用变量。) 展开
2个回答
展开全部
x="id" //需要按此排序的字段
String sql = "select * from goods order by "+x+" desc "; //拼接字符串即可
String sql = "select * from goods order by "+x+" desc "; //拼接字符串即可
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询