簡體   English   中英

如何在另一個查詢的LIKE條件下使用SQL查詢結果?

[英]How can an SQL query result be used in the LIKE condition of another query?

我創建了一個子查詢,使用SQL LIKE條件從一個表中搜索特定字符串。 我想將此子查詢的結果作為字符串使用LIKE條件在我的主SQL查詢中進行搜索。 我嘗試了下面的代碼,但出現語法錯誤,盡管這似乎是應該這樣做的方法……不幸的是,我不是SQL專家,只是想嘗試一下。

SELECT * FROM `allcesseries` 
WHERE series_id LIKE '%'+(SELECT industry_code FROM `ceindustry` WHERE industry_name LIKE '%Technical and trade schools%')+'%'
SELECT * FROM `allcesseries` 
WHERE series_id LIKE concat('%',
    (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的條件,您將得到重復的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM