2010-10-14 3 views
2

У меня есть таблица со столбцом, содержащим текст, и я хочу выбрать все таблицы, в которых текст из одной из строк второй таблицы появится в этой строке. Вот псевдо-запрос:MySQL: присоединяйтесь к двум таблицам по LIKE

SELECT title FROM recipes AS r 
    JOIN ingredients AS i 
    ON r.ingredients LIKE '%' + i.name + '%'; 

Приведенный выше запрос не работает. Как это сделать правильно?

ответ

2

Вы не можете объединить строки с оператором + (это только для арифметических операций). Вместо этого используйте concat('%',i.name,'%').

3
SELECT title 
FROM recipes r JOIN ingredients i ON r.ingredients LIKE concat('%', i.name, '%') 

MySQL странно, и заставляет вас использовать оператор concat для конкатенации строк вместе. Большинство других используют ||

Смежные вопросы