2011-08-23 476 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数据库。 –