2
考虑表任务搜索逗号IDS分隔字符串以逗号分隔字符串
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”或“查看者”的所有行从输入str ING。我曾与IN()尝试了 “assigned_to”,
SELECT * FROM tasks WHERE assign_to IN ($inputString)
但当时无法得到任何的解决方案,以配合 “观众” 一栏。
有什么办法可以将逗号分隔的字符串与另一个逗号分隔的字符串进行匹配吗?
在此先感谢
NORMALIZE你的数据库 –
如果你可以重构你的数据库结构,那么这个任务会容易得多:在关系数据库中'在一行中的一列中有多个值'通常被认为是不好的做法; '查看者'应该真的在一个单独的表中,并只通过外键引用;这将引入一个新表TaskViewers,只有两列TaskId和ViewerId,然后你可以像SELECT任务那样将该表加入到该表中。FROM任务INNER JOIN taskviewers ON tasks.id = taskviewers.taskid WHERE tasks.assign_to IN($ inputString)或taskviewers.viewerid IN($ inputString)' – DrCopyPaste
mysql FIND_IN_SET –