Как использовать пользовательские переменные в предложении MySQL LIKE?

Я пытаюсь настроить несколько простых сценариев SQL, чтобы помочь с краткосрочным администрированием БД. Поэтому я настраиваю переменные, чтобы упростить повторное использование этих скриптов.

Проблема, с которой я столкнулся, связана именно с предложением LIKE.

SET @email = 'test@test.com';

SELECT email from `user` WHERE email LIKE '%@email%';

Итак, я хочу, чтобы он находил результаты на основе электронного адреса SET в переменной. Запрос работает, если я вручную ввожу электронное письмо в предложение LIKE.

Как я могу заставить предложение LIKE работать с пользовательской переменной?

ОБНОВЛЕНИЕ: Ответ @dems работает для этого простого случая, но у меня проблемы с более сложным запросом.

SET @email = 'test@test.com';

SELECT project.projectno, project.projectname, login.username, 
CONCAT(login.firstname, ' ', login.lastname), projectuser.title 
FROM projectuser 
INNER JOIN login ON projectuser.uid = login.uid 
LEFT JOIN project ON projectuser.pid = project.pid
WHERE login.username LIKE CONCAT ('%', @email, '%')

Выдает ошибку «FUNCTION mydb.CONCAT не существует»

Запрос работает без CONCAT ():

SET @email = 'test@test.com';

SELECT project.projectno, project.projectname, login.username, 
CONCAT(login.firstname, ' ', login.lastname), projectuser.title 
FROM projectuser 
INNER JOIN login ON projectuser.uid = login.uid 
LEFT JOIN project ON projectuser.pid = project.pid
WHERE login.username LIKE @email
38
задан Chris 20 December 2011 в 17:37
поделиться