Я пытаюсь настроить несколько простых сценариев 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