इसे आजमाएं:
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;
मेरा मानना है कि आपको @var
. का उपयोग करना होगा चर के लिए वाक्यविन्यास। साथ ही, एक स्ट्रिंग में संग्रहीत क्वेरी को निष्पादित करने के लिए, आपको PREPARE
. का उपयोग करना होगा और EXECUTE
।
और आपको UPPER
. का उपयोग करने की आवश्यकता नहीं है तार पर। डिफ़ॉल्ट रूप से, MySQL स्ट्रिंग्स केस-असंवेदनशील रूप से तुलना करता है। आप यह सुनिश्चित कर सकते हैं कि आपके फ़ील्ड के लिए संयोजन प्रकार को देखकर। ci_
वाले "केस असंवेदनशील" के लिए खड़े हैं।