我正在使用netbeans。 我有一个表'事件',其列'优先级'可以保存值优先级1,优先级2。
我创建了一个带有3个选项的jcombobox - 全选(选择所有行)/优先级1(选择优先级为1的行等等)/优先级2.选项通过prioritybox.getSelected()传递。 我想知道任何可能的sql语句,这样如果我选择'select all'选项,则应该选择表的所有条目。
如果我选择优先级1 声明
select * from incident where priority='"+prioritybox.getSelected()+"';
正确执行,即选择优先级= priority1的行。但是,如果我选择“全选”选项,则此语句将变为无效,因为没有这样的行具有优先级值=全选。我不想使用if-else。还有其他任何可能的解
答案 0 :(得分:0)
对于纯粹的SQL,你可以这样做:
select * from incident where priority='"+prioritybox.getSelected()+"' OR '"+prioritybox.getSelected()+"' = 'select all';
但是,如果选项不是全部选项,则添加逻辑以添加where子句可能更容易。
答案 1 :(得分:0)
String query="";
if(!prioritybox.getSelected().toString().equals("select all")){
query="select * from incident where priority='"+prioritybox.getSelected()+"'";
}
else {
query="select * from incident" ;
}
答案 2 :(得分:0)
您可以将特殊字符'%'传递给查询,该查询将返回您需要替换的所有字符=使用类似查询,您需要将'%'设置为'SelectAll'值,您的查询可以像这样
select * from incident where priority like '"+prioritybox.getSelected()+"';
答案 3 :(得分:0)
您需要使用if子句。 请使用以下代码
String strSelect1 = "select * from table";
if(prioritybox.getSelectedItem()!="your option")
{ strSelect1=strSelect1+" where Priority='"+prioritybox.getSelectedItem()+"'"; };
现在继续为其余字段添加if语句。