2011-08-23 4 views
2

On suppose que c'est la requête que j'ai besoin:Comment utiliser des SELECT imbriqués dans Mysql avec LIKE?

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

Actuellement, il ne fonctionne pas et retourne aucun résultat alors qu'il ya des enregistrements qui satisfont la condition.
Je me demande quel est le problème ici?

Répondre

6

Cela devrait fonctionner:

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

merci, cela a fonctionné. –

1

Essayez celui-ci, ne sais pas si cela fonctionnera ...

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

Bêtement, '+' ne concaténer pas les chaînes dans MySQL - uniquement en seulement à propos de CHAQUE autre base de données SQL là-bas. –

Questions connexes