MYSQL检查一个查询是否生成了任何出现在给定列表中的值

MYSQL检查一个查询是否生成了任何出现在给定列表中的值,mysql,arrays,Mysql,Arrays,我在表a中有一个字符串字段。它包含一个逗号分隔值列表,存储在标记为X的字段中: 例如“a、b、c、d、e、f” 我有表B,其中有一个字段Y,它可能有这些值的任何排列 例如“a”、“a、c”、“b、c、d” 甚至是完全不同的价值观: 例如“m,n”,“g,i,l” 我需要使用MYSQL查询选择表B中的所有行,其中字段Y至少有一个字母出现在表a的字段X中 有谁能帮我解决这个问题吗 我曾经尝试过类似于以下的方法,但几乎没有什么乐趣,即使是与组一起玩——我的SQL非常差,因此很难理解如何进行这样的查询:

我在
表a中有一个字符串字段
。它包含一个逗号分隔值列表,存储在标记为X的字段中: 例如“a、b、c、d、e、f”

我有
表B
,其中有一个字段Y,它可能有这些值的任何排列 例如“a”、“a、c”、“b、c、d” 甚至是完全不同的价值观: 例如“m,n”,“g,i,l”

我需要使用MYSQL查询选择
表B
中的所有行,其中字段Y至少有一个字母出现在
表a
的字段X中

有谁能帮我解决这个问题吗

我曾经尝试过类似于以下的方法,但几乎没有什么乐趣,即使是与组一起玩——我的SQL非常差,因此很难理解如何进行这样的查询:

SELECT y FROM B WHERE y IN (SELECT x FROM A);

您可以尝试使用
FIND_IN_SET()
字段不应包含逗号分隔的值。使用适当的数据结构来存储列表。在@GordonLinoff的评论中,您的表没有满足第一个范式的要求,您的模式符合第三个范式被认为是合理的。这些规范化条件是由关系模型的创建者Ted Codd提出的。表1中的每个值都应该在单独的一行中。这将为您节省很多问题。感谢您的评论-问题是我使用插件进行查询的是开源代码-我无法控制重新设计表或重新构造表。