Coba ini:
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;
Saya yakin Anda harus menggunakan @var
sintaks untuk variabel. Juga, untuk menjalankan kueri yang disimpan dalam string, Anda harus menggunakan PREPARE
dan EXECUTE
.
Dan Anda tidak perlu menggunakan UPPER
pada string. Secara default, MySQL membandingkan string dengan case-insensitive. Anda dapat memastikannya dengan melihat jenis susunan untuk bidang Anda. ci_
yang berarti "tidak peka huruf besar-kecil".