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".