将多个id传递给mysql中的单个参数

时间:2018-03-24 16:35:42

标签: mysql

我的表emloyee包含以下数据。

Id    Name     Country   

1     John      USA

2     Smith     USA

3     Jack      IND

4     Lory      UK

5     Miller    USA

我希望通过调用这样的存储过程获得结果

call getEmployeeDetailsByCountry('IND,UK');

Result:
Id    Name     Country   

3     Jack      IND

4     Lory      UK

我的程序是

select * from employee
where if( (LOCATE(',','IND,USD')>0),
Country in (concat('\'',REPLACE('IND,USD', ',', '\',\''),'\''))
, Country in ('IND,USD'));

这里取代了IND,USD'到' IND' USD' USD'。 但结果是没有行......任何人都可以帮我找到.....谢谢

2 个答案:

答案 0 :(得分:3)

使用FIND_IN_SET而不是IN

    SELECT * 
FROM product
WHERE FIND_IN_SET(country, 'IND,USD');

试试这个我想这会解决你的问题

答案 1 :(得分:-1)

为什么不在where子句中使用简单IN statement的查询?

SELECT * FROM employee WHERE Country IN ('IND', 'UK');