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 –