2011-08-23 77 views
2

認爲這是我所需要的查詢:如何使用LIKE在Mysql中使用嵌套的SELECT?

SELECT * FROM `products` WHERE `keywords` LIKE "%(SELECT `key` FROM `keywords` WHERE `slug` = '%d8%af%db%8c%d9%88%d8%a7%d8%b1' LIMIT 1)%" 

目前,它不工作,同時也有滿足條件的記錄返回結果爲零。
我想知道這裏有什麼問題?

回答

6

這應該工作:

SELECT * 
FROM products 
WHERE keywords LIKE 
    CONCAT('%', (SELECT `key` FROM `keywords` 
     WHERE `slug` = '%d8%af%db%8c%d9%88%d8%a7%d8%b1' LIMIT 1), '%'); 
+0

謝謝,它的工作。 –

1

試試這個,不知道這是否會工作...

SELECT * FROM products 
WHERE keywords LIKE "%" + (SELECT key FROM keywords WHERE slug = 'something' LIMIT 1) + "%"; 
+2

愚蠢, '+' 不連接字符串在MySQL - 僅在短短關於其他所有SQL數據庫。 –