gpt4 book ai didi

java - sql where 子句等于 true

转载 作者:行者123 更新时间:2023-12-02 08:43:52 25 4
gpt4 key购买 nike

这里 where a1.color= true 在 java 中不起作用。当我在下拉列表中选择任何颜色时,出现错误。

 //fist part
Public List<ConclusionBO> getConclusion(String color){
StringBuilder sql = new StringBuilder();
sql.append("select something");
sql.append("where a1.color= :colorParam");
//More statement
if(transactionStatus.equals("all")) {
query.setParameter("colorParam", true);
}else {
query.setParameter("colorParam", color);
}
}

当我这样做时,下面的代码对于我从下拉列表中选择的任何颜色都适用。但是当从下拉列表中选择全部时,它没有显示任何结果(当然,因为我的数据库没有列颜色的值“all”)

//second part
sql.append("select something");
sql.append("where a1.color= :colorParam");
//More statement
query.setParameter("colorParam", color);

我的问题是,当用户从下拉列表中选择“全部”时,我想从数据库中选择所有颜色(所有记录),这就是为什么在第一部分我设置 where a1.status = true,因为我希望它返回所有结果,但最终返回错误。

日志中的错误消息是:

Not all named parameters have been set: [color]

我想澄清一下,//第二部分代码正在工作,只是当从下拉列表中选择全部时,它无法显示任何内容,因为我的数据库没有“全部”颜色列。

最佳答案

此解决方法可能有效

Public List<ConclusionBO> getConclusion(String color){
StringBuilder sql = new StringBuilder();
sql.append("select something");
//More statement
if(!"all".equals(transactionStatus)) {
sql.append("where a1.color= :colorParam");
query.setParameter("colorParam", color);
}
}

有了这个,您只需在需要过滤的内容时添加 where 子句,并且如果所选选项是全部,您只需选择每种颜色。

关于java - sql where 子句等于 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61209195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com