Mysql 如何在包含整数作为逗号分隔值的列中查找包含任何给定整数的行列表
我有一个例子,我们正在维护一个包含资源的表。这个表有一个varchar列,其中包含以逗号分隔的值表示的角色ID(我知道规范化应该是一种方法,但不能更改长时间运行的工作系统)。例如,role_ID列包含“1,4,6,9,10”,另一行包含“5,10,15” 然后,对于系统中的用户,我将关联的角色ID作为列表,例如4,15。现在,我需要找到“多个中的任意”,即在resource.role\u id列中可能存在任何角色ID的任何资源 这个问题类似于,但Grails中不希望出现预期的解决方案Mysql 如何在包含整数作为逗号分隔值的列中查找包含任何给定整数的行列表,mysql,sql,Mysql,Sql,我有一个例子,我们正在维护一个包含资源的表。这个表有一个varchar列,其中包含以逗号分隔的值表示的角色ID(我知道规范化应该是一种方法,但不能更改长时间运行的工作系统)。例如,role_ID列包含“1,4,6,9,10”,另一行包含“5,10,15” 然后,对于系统中的用户,我将关联的角色ID作为列表,例如4,15。现在,我需要找到“多个中的任意”,即在resource.role\u id列中可能存在任何角色ID的任何资源 这个问题类似于,但Grails中不希望出现预期的解决方案 我正在寻找
我正在寻找一个MySQL解决方案——查询或存储过程。虽然使用“FIND_IN_set()”可以找到一组资源,但不希望使用每个用户的角色id列表对DB执行多个调用。使用类似的函数将列表转换为单独的记录,然后正常地将所有东西连接起来。应该不够强大,而且“不能改变长期运行的工作系统”的效果可能比你想象的要小。这是一个非常糟糕的问题和设计,从长远来看,你将花费更长的时间来解决它,修复问题,并尝试做类似的事情,而不是一开始就致力于从代码中删除糟糕的设计。这是一个有效的系统,是的,但你不会仅仅投入一个更好的解决方案,你应该计划、实施和测试它。我的强烈推荐。[另外,看起来只有几张桌子]