Mysql 在另一个sql查询中使用组_CONCAT的结果

Mysql 在另一个sql查询中使用组_CONCAT的结果,mysql,sql,Mysql,Sql,我需要在另一个查询中使用GROUP_CONCAT中包含的结果,但我无法解决如何执行此操作,因为它们位于逗号分隔的列表中 例如,如果组_CONCAT(样本)包含a、b、c、d、e、f,我会尝试这样做 SELECT * FROM `orders` WHERE `this` IN GROUP_CONCAT(sample) 但是我有一个语法错误 我不能用 WHERE `this` = GROUP_CONCAT(sample) 因为它试图将此与逗号分隔的列表匹配 是否有具体的方法来实现这一点 使用

我需要在另一个查询中使用GROUP_CONCAT中包含的结果,但我无法解决如何执行此操作,因为它们位于逗号分隔的列表中

例如,如果组_CONCAT(样本)包含a、b、c、d、e、f,我会尝试这样做

SELECT * FROM `orders` WHERE `this` IN GROUP_CONCAT(sample)
但是我有一个语法错误

我不能用

 WHERE `this` = GROUP_CONCAT(sample)
因为它试图将此与逗号分隔的列表匹配

是否有具体的方法来实现这一点

使用

或者您可以使用(如果没有特殊原因使用
组\u CONCAT


如果
sample
orders
table

的列,则应将两个查询组合起来:

SELECT *
FROM `orders`
WHERE exists (select 1
              from <other query without aggregation> s
              where this = s.sample
             )

这必须使用完整的表扫描,并且不能利用索引。

您不需要在另一个查询中使用组目录中包含的结果。Period.sample是另一个表的结果。接受您的答案。对我来说非常有效。感谢您让我了解
在集合中查找
。这将非常有用。:)然后您应该选择第一个选项
FIND\u IN\u SET
。谢谢
SELECT * FROM `orders` WHERE `this` IN (sample)
SELECT *
FROM `orders`
WHERE exists (select 1
              from <other query without aggregation> s
              where this = s.sample
             )
select *
from orders o
where find_in_set(o.this, sample) > 0;