If a user-defined variable @x
is a string of comma separated numbers, e.g. \'1,2,4\'
, is there a way to use it in an IN ()
function?
Maybe there is no point of answering this question now, but recently I faced same problem and this is how I resolved it.
It worked for me, hope this is what you were looking for.
select * from table_name where CONCAT(',',('1,2,4'),',') LIKE CONCAT('%,',column_name,',%');
Example: It will look like this
select * from t where ',1,2,4,' LIKE '%,2,%';
You can't do this directly using a variable. Based on what you have now, the server is trying to execute select * form t where c in ('1,2,3');
... which clearly isn't what you want given that you're checking to see if c contains the single string given.
You must generate dynamic SQL based off of your list in order to get this to work.