考虑表任务
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)
但是无法获得与“查看器”列匹配的任何解决方案。
有没有办法将逗号分隔的字符串与另一个逗号分隔的字符串匹配?
提前致谢
答案 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
这不是很有效但可以完成任务。