我正在从独立的 java 应用程序连接到 mysql db。我的应用程序使用了几个过滤器来确定将从 db.xml 中选择哪些数据。
在某些情况下,我想以某种方式构造 select 命令,即忽略其“WHERE”参数并从 db 中选择所有值。
这是我的例子:
String query = "SELECT * from messages WHERE type='" + type + "' ORDER BY id DESC";
变量类型可以包含一些与我的数据库中项目的 Varchar 匹配的特定类型。但是,用户可以将类型设置为“所有值”(或类似的,我希望这已经足够清楚了),在这种情况下,查询将从 db 中选择所有值(它将忽略 where 参数)。
我知道我可以通过在我的代码中简单地放置一些 if 语句并在每个分支中调用不同的 select 命令来做到这一点,但是如果使用了多个规范(WHERE 参数中的属性),这将非常无效。
例如:
String query = "SELECT * from messages WHERE type='" + type + "' AND time='" + time + "' ORDER BY id DESC";
我不确定这是否可行。如果没有,对不起愚蠢的问题......提前谢谢!