在两列中检查数据库中的值

时间:2013-04-06 07:41:56

标签: java mysql

我有一个MySQL表,其中包含id和name等列。我只想在变量中获取值,有时是id,有时也是名称。如何检查两列中的值?

我尝试过这样的事情:

select count(*) from topic where (name= '"+ name + "' or id='"+name+"')

变量名称是相同的,所以我必须签入两列。

4 个答案:

答案 0 :(得分:0)

您可能希望使用LIKE代替=

答案 1 :(得分:0)

您应该能够在SELECT子句中添加您想要的值。

试试这个:

SELECT COUNT(1) count, name, id
FROM topic
WHERE (name= '"+ name + "' or id='"+name+"')

答案 2 :(得分:0)

ID的数据类型是什么。如果它是一个int,那么你不需要id周围的单引号。您也不需要在语句中使用括号。如果此语句在Java程序中,则必须将所有内容括在双引号中。

杰森波西特

答案 3 :(得分:0)

如果你要检查你想要的名字:

    select count(*) from topic where (name= '"+ name + "');

如果你要检查你想要的id:

    select count(*) from topic where (id= '"+ name + "');

然后你想使用“case when statement”,如下所示: 首先定义

    column_to_match to be = 'name' or = 'id' depending on your scenario

然后

    select count(*) from topic where (case column_to_match when 'name' then name= '"+ name + "' when 'id' then id= '"+ name + "' end case);

我建议你将name变量重命名为val