Я пытаюсь настроить несколько простых сценариев SQL, чтобы помочь с некоторым краткосрочным администрированием БД.Поэтому я настраиваю переменные, чтобы упростить повторное использование этих сценариев.
Проблема, с которой я столкнулся, связана именно с предложением LIKE.
SET @email = 'test@test.com';
SELECT email from `user` WHERE email LIKE '%@email%';
Поэтому яЯ хочу, чтобы он находил результаты на основе адреса электронной почты SET в переменной.Запрос работает, если я вручную ввожу электронное письмо в предложение LIKE.
Как мне заставить предложение LIKE работать с пользовательской переменной?
UPDATE: ответ @ 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