0

我正在使用netbeans。我有一个表 'incident' 列 'priority' 可以保存值优先级 1 ,优先级 2。

我创建了一个带有 3 个选项的 jcombobox - 全选(选择所有行)/优先级 1(选择优先级为 1 的行,依此类推)/优先级 2。选项通过 prioritybox.getSelected() 传递。我想知道任何可能的 sql 语句,以便如果我选择选项 'select all' ,则应选择表的所有条目。

如果我选择优先级 1 那么声明

  select * from incident where priority='"+prioritybox.getSelected()+"';

得到正确执行,即它选择优先级=priority1 的行。但是,如果我选择“全选”选项,则此语句将无效,因为没有优先级值 = 全选的行。我不想使用 if-else。还有其他可能的解决方案吗??

4

4 回答 4

0

对于纯 SQL,您可以执行以下操作:

select * from incident where priority='"+prioritybox.getSelected()+"' OR '"+prioritybox.getSelected()+"' = 'select all';

但是,如果选项不是全选,则添加逻辑以添加 where 子句可能更容易。

于 2013-06-28T11:30:45.833 回答
0
String query="";
if(!prioritybox.getSelected().toString().equals("select all")){
    query="select * from incident where priority='"+prioritybox.getSelected()+"'";
}
else {
    query="select * from incident" ;

 }
于 2013-06-28T11:30:54.590 回答
0

您可以将特殊字符'%'传递给查询,它将返回您需要用类似查询替换 = 的所有字符,并且您需要将 '%' 设置为您的 'SelectAll' 值,您的查询可以是这样的

select * from incident where priority like '"+prioritybox.getSelected()+"';
于 2013-06-28T11:35:47.063 回答
0

您需要使用 if 子句。使用以下代码

     String strSelect1 = "select * from table";
     if(prioritybox.getSelectedItem()!="your option")
     { strSelect1=strSelect1+" where Priority='"+prioritybox.getSelectedItem()+"'"; };

现在继续为其余字段添加此 if 语句。

于 2013-06-28T17:55:00.900 回答