Mysql 如何在另一个查询的类似条件中使用SQL查询结果?

Mysql 如何在另一个查询的类似条件中使用SQL查询结果?,mysql,subquery,sql-like,Mysql,Subquery,Sql Like,我创建了一个子查询,使用类似SQL的条件从一个表中搜索特定字符串。我想使用此子查询的结果作为字符串,以便在主SQL查询中也使用like条件进行搜索。我尝试了下面的代码,但我得到了语法错误,尽管这似乎是应该这样做的…不幸的是,我不是一个SQL专家,只是试图找出这个问题 SELECT * FROM `allcesseries` WHERE series_id LIKE '%'+(SELECT industry_code FROM `ceindustry` WHERE industry_name L

我创建了一个子查询,使用类似SQL的条件从一个表中搜索特定字符串。我想使用此子查询的结果作为字符串,以便在主SQL查询中也使用like条件进行搜索。我尝试了下面的代码,但我得到了语法错误,尽管这似乎是应该这样做的…不幸的是,我不是一个SQL专家,只是试图找出这个问题

SELECT * FROM `allcesseries` 
WHERE series_id LIKE '%'+(SELECT industry_code FROM `ceindustry` WHERE industry_name LIKE '%Technical and trade schools%')+'%'

在这种情况下,我建议您使用
exists

SELECT *
FROM `allcesseries` a
WHERE EXISTS (SELECT 1 
              FROM `ceindustry` c
              WHERE c.industry_name LIKE '%Technical and trade schools%' AND
                    a.series_id LIKE CONCAT('%', c.industry_code, '%') 
             );
如果您有多个匹配项,那么这将按预期工作

如果需要,也可以将其直接表示为联接:

SELECT a.*
FROM `allcesseries` a JOIN
     ceindustry c
     ON c.industry_name LIKE '%Technical and trade schools%' AND
        a.series_id LIKE CONCAT('%', c.industry_code, '%')

但是如果有多行满足
ceindustry
中的条件,您将得到重复的行。

谢谢!这正是我想要的。
SELECT a.*
FROM `allcesseries` a JOIN
     ceindustry c
     ON c.industry_name LIKE '%Technical and trade schools%' AND
        a.series_id LIKE CONCAT('%', c.industry_code, '%')