使用jdbc connector-Mysql在java中的一个查询中多次选择

时间:2014-01-11 19:34:21

标签: java mysql sql jdbc

我尝试在java中进行多项选择。我有两个字符串" name"和#34;艺术家"我想在一个查询中选择它们,即使其中一个为空。

我做了类似的事情:

if ( !nameIsEmpty && !artisIsEmpty )
{
    rst = stmt.executeQuery("SELECT * FROM school.product_table where name=" + "'" + name + "'  and artist=" + "'" + artist + "'");
}
else if ( nameIsEmpty && !artisIsEmpty )
{
    rst = stmt.executeQuery("SELECT * FROM school.product_table where  artist=" + "'" + artist + "'");
}
else if ( !nameIsEmpty && artisIsEmpty )
{
    rst = stmt.executeQuery("SELECT * FROM school.product_table where  name=" + "'" + name + "'");
}
else
{
    productIsEmpty = true;
}

我认为这不是最好的方法。我希望在一个查询中有一个简单的方法。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

SELECT * FROM school.product_table其中(name.null)中的名称和(name,null)中的艺术家

除了将记录与名称和艺术家匹配外,它还将返回name = null和artist,art​​ist = null和name,null和null的结果。

如果你想跳过两个空结果,试试这个 -

SELECT * FROM school.product_table其中(name.null)中的名字和(name,null)中的艺术家和!(artist = null&& name = null)