Hãy thử điều này:
SET @query = "SELECT * FROM projects WHERE ";
SET @l_project_name = CONCAT("a.project_name LIKE '%", projectName, "%'");
SET @l_project_type = CONCAT(" OR a.project_type LIKE '%", projectType, "%'");
SET @l_project_description = CONCAT(" OR a.project_description LIKE '%", projectDescription, "%'");
SET @l_full_search_clause = CONCAT(@l_project_name, @l_project_type, @l_project_description);
SET @query = CONCAT(@query, @l_full_search_clause);
PREPARE stmt FROM @query;
EXECUTE stmt;
Tôi tin rằng bạn phải sử dụng @var cú pháp cho các biến. Ngoài ra, để thực hiện một truy vấn được lưu trữ trong một chuỗi, bạn phải sử dụng PREPARE và EXECUTE .
Và bạn không cần phải sử dụng UPPER trên chuỗi. Theo mặc định, MySQL so sánh các chuỗi không phân biệt chữ hoa chữ thường. Bạn có thể đảm bảo điều đó bằng cách xem xét loại đối chiếu cho các trường của bạn. ci_ những cái viết tắt của "phân biệt chữ hoa chữ thường".