使用逗号分隔的字符串以逗号分隔的字符串搜索ids

时间:2014-02-12 09:20:46

标签: php mysql

考虑表任务

id | assigned_to | viewers
1    100           100,200,300
2    200           125,200,310
3    300           175,250,300
4    400           400,440,670
5    500           500,111,333

我将获得一个输入字符串,其中可能包含超过1000个逗号分隔值,例如

1,2,3,4,5,6,7,8,,,,100,,,,500,,,,1000

我想从输入字符串中获取表中与“ assigned_to ”或“查看器”匹配的所有行。我尝试使用 IN()作为“ assigned_to ”,

SELECT * FROM tasks WHERE assign_to IN ($inputString)

但是无法获得与“查看器”列匹配的任何解决方案。

有没有办法将逗号分隔的字符串与另一个逗号分隔的字符串匹配?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

$str = "SELECT * FROM tasks WHERE assign_to IN ($inputString) ";
$values = explode(",",$inputString);
foreach ($values as $val) {
    $str .= "AND viewers LIKE ".$val; //Replace AND with OR as per your requirement (Match all/ match any)
}

//execute query

这不是很有效但可以完成任务。