Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да предадете низ като клауза WHERE в MYSQL

Опитайте това:

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_ тези означават "нечувствителни към главни букви".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неясната документация на Python mysqldb

  2. Търсене на множество числа в поле за множество числа

  3. Entity Framework създава име на таблица за множествено число, но изгледът очаква име на таблица в единствено число?

  4. BIGINT(8) ли е най-голямото цяло число, което MySQL може да съхранява?

  5. Грешка при анализа:синтактична грешка, неочакван '' (T_ENCAPSED_AND_WHITESPACE)