Как использовать вложенные SELECTs в Mysql с LIKE? - PullRequest
2 голосов
/ 23 августа 2011

Предположим, это запрос, который мне нужен:

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

В настоящее время он не работает и возвращает ноль результатов, в то время как есть записи, которые удовлетворяют условию.
Интересно, в чем здесь проблема?

Ответы [ 2 ]

7 голосов
/ 23 августа 2011

Это должно работать:

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), '%');
1 голос
/ 23 августа 2011

Попробуйте это, не уверен, что это будет работать ...

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