我已经在这个网站和网络上环顾四周,但到目前为止还没有任何运气。
问题:
我有一个存储文件信息的表,其中包含一个以逗号分隔的数值列表,标识哪些组可以访问每个文件。
每个用户的活动组都存储在一个会话中,因此我需要将会话中以逗号分隔的数字列表与存储在表格列中的逗号分隔列表进行比较。如果会话中的任何组与列中的任何组匹配,则该文件是可访问的。
例如 :
资源 1 的 rgroups 字段由“1,13,15”填充,表明这 3 个组可以查看资源。
在列出资源的页面上,我有以下查询,其中 $matches 来自活动组的会话:
SELECT * FROM resources WHERE rgroups IN ($matches)
现在这似乎在 1 个组处于活动状态时工作正常 - 即 WHERE 1 IN (1,13,15) - 但是当多个组处于活动状态时呢?
SELECT * FROM resources WHERE 1,14 IN (1,13,15)
还是我需要一个不同的、更复杂的查询?
谢谢!