0

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

我尝试过这样的事情:

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

变量名相同,所以我必须检查两列。

4

4 回答 4

0

您可能想使用LIKE而不是=

于 2013-04-06T07:45:58.187 回答
0

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

尝试这个:

SELECT COUNT(1) count, name, id
FROM topic
WHERE (name= '"+ name + "' or id='"+name+"')
于 2013-04-06T07:46:50.970 回答
0

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

杰森·波西特

于 2013-04-06T07:46:55.193 回答
0

如果您正在检查您想要的名称:

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

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

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

那么你想像这样使用“case when 语句”:首先定义

    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

于 2013-04-06T07:55:05.767 回答