我尝试在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;
}
我认为这不是最好的方法。我希望在一个查询中有一个简单的方法。 提前谢谢。
答案 0 :(得分:0)
SELECT * FROM school.product_table其中(name.null)中的名称和(name,null)中的艺术家
除了将记录与名称和艺术家匹配外,它还将返回name = null和artist,artist = null和name,null和null的结果。
如果你想跳过两个空结果,试试这个 -
SELECT * FROM school.product_table其中(name.null)中的名字和(name,null)中的艺术家和!(artist = null&& name = null)