2014-05-14 30 views
-3

条款我有一个使用CONCAT MySQL查询和where子句中取代:的毗连在mysql中

select * from table1 where name in 
(concat("'",(REPLACE('name1,name2,name3', ',', "','")),"'")); 

该查询不起作用。你能帮我解决这个问题吗?

+2

究竟是你想什么该做,什么不起作用?你是否试图动态构建一个集合并将'name'与它匹配? – vhu

+0

向我们提供有关您获得的错误的更多信息。 –

+0

从字符串'name1,name2,name3',我想单个字符串为'name1','name2','name3',这样我就可以在上面的查询中使用它们。 – harishsingh

回答

0

最有可能你需要更换各地名1单引号..:

select * 
from table1 
where `name` in (concat("'",(REPLACE("name1,name2,name3", ",", "','")),"'")); 
+1

这也不起作用。 – Simulant

+1

是的,不工作 – harishsingh

+0

我在MySQL中测试过。唯一的区别是表名和列。尝试在“名称”前后添加“'”(重音符号)。它可能是一个保留字。 –