Próbuję skonfigurować kilka prostych skryptów SQL, aby pomóc w krótkoterminowej administracji DB. W związku z tym konfiguruję zmienne, aby ułatwić ponowne użycie tych skryptów.Jak używać zmiennych użytkownika w klauzuli MySQL LIKE?
Problem, który mam, dotyczy konkretnie klauzuli LIKE.
SET @email = '[email protected]';
SELECT email from `user` WHERE email LIKE '%@email%';
Chciałbym, aby to było znalezienie wyników w oparciu o e-mail SET w zmiennej. Zapytanie zadziała, jeśli ręcznie wprowadzę wiadomość e-mail do klauzuli LIKE.
Jak uzyskać klauzulę LIKE do pracy ze zmienną użytkownika?
AKTUALIZACJA: @ odpowiedź dems działa dla tego prostego przypadku, ale mam problem z bardziej złożonym zapytaniem.
SET @email = '[email protected]';
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, '%')
daje mi błąd "Funkcja mydb.CONCAT nie istnieje"
Kwerenda działa bez CONCAT():
SET @email = '[email protected]';
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
Usuwanie spacji między 'CONCAT' i klamra' ('. Powinno to być 'CONCAT (...', nie 'CONCAT (' – a1ex07
@ a1ex07 Tak, usunięcie tego miejsca naprawiło To dziękuję – Chris
Wiem, że nie uczymy gramatyki tutaj, ale na pewno nie mogę być jedynym, który dręczył przez błąd w tytule pytania: "Jak używać ** zmiennych użytkownika ** w klauzuli MySQL LIKE?" – qualebs