Prøv dette:
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;
Jeg tror, du skal bruge @var syntaks for variabler. For at udføre en forespørgsel, der er gemt i en streng, skal du også bruge PREPARE og EXECUTE .
Og du behøver ikke bruge UPPER på strenge. Som standard sammenligner MySQL strenge uafhængigt af store og små bogstaver. Det kan du sikre dig ved at se på sorteringstypen for dine felter. ci_ dem står for "case insensitive".