我有一个MySQL表,其中包含id和name等列。我只想在变量中获取值,有时是id,有时也是名称。如何检查两列中的值?
我尝试过这样的事情:
select count(*) from topic where (name= '"+ name + "' or id='"+name+"')
变量名称是相同的,所以我必须签入两列。
答案 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