带有任何值的情况下的准备好的语句

问题描述 投票:0回答:1

我已经准备好类似的声明

select * from books where author = ? and theme = ?

而且我不知道该怎么办,如果用户选择选项“任何作者”或“任何主题”,我应该为准备好的语句设置什么?

java mysql sql jdbc
1个回答
0
投票

我根据输入数据使用3个不同的准备好的语句来解决此问题。


0
投票

SQL语句的哪些部分应该存在,但准备好的语句不会覆盖(除非您有创造力)。通常,解决方案是动态生成where子句中的条件,例如:

String sql = "select * from books where 1=1";
if (author != null) { 
    sql += " and author=?";
}
© www.soinside.com 2019 - 2024. All rights reserved.