Tôi đang cố gắng thiết lập một vài kịch bản lệnh SQL đơn giản để trợ giúp với một số quản trị viên DB ngắn hạn. Vì vậy, tôi đang thiết lập các biến để cố gắng sử dụng lại các tập lệnh này dễ dàng hơn.Cách sử dụng biến người dùng trong mệnh đề MySQL LIKE?
Sự cố tôi gặp phải là cụ thể với mệnh đề LIKE.
SET @email = '[email protected]';
SELECT email from `user` WHERE email LIKE '%@email%';
Vì vậy, tôi muốn tìm kết quả dựa trên email SET trong biến. Truy vấn hoạt động nếu tôi nhập email theo cách thủ công vào mệnh đề LIKE.
Làm cách nào để nhận mệnh đề LIKE để hoạt động với biến người dùng?
CẬP NHẬT: câu trả lời của @ dems hoạt động cho trường hợp đơn giản này, nhưng tôi đang gặp sự cố với truy vấn phức tạp hơn.
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, '%')
Cung cấp cho tôi những lỗi "CHỨC NĂNG mydb.CONCAT không tồn tại"
Truy vấn làm việc mà không có sự 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
nhân vật không gian Remove giữa 'CONCAT' và cú đúp '('. Nó phải là 'CONCAT (...', không phải 'CONCAT (' – a1ex07
@ a1ex07 Có, bỏ không gian đó đã sửa nó. Cảm ơn. – Chris
Tôi biết chúng ta không dạy ngữ pháp ở đây nhưng chắc chắn tôi không thể là người duy nhất bị làm phiền bởi lỗi trong tiêu đề câu hỏi, "Cách sử dụng ** biến người dùng ** trong mệnh đề MySQL LIKE?" – qualebs