sql >> Databáze >  >> RDS >> Mysql

Jak předat řetězec jako klauzuli WHERE v MYSQL

Zkuste toto:

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;

Věřím, že musíte použít @var syntaxe proměnných. Chcete-li také provést dotaz, který je uložen v řetězci, musíte použít PREPARE a EXECUTE .

A nemusíte používat UPPER na strunách. Ve výchozím nastavení MySQL porovnává řetězce bez ohledu na velikost písmen. Můžete to zajistit tím, že se podíváte na typ řazení pro vaše pole. ci_ jedničky znamenají „nerozlišují malá a velká písmena“.




  1. Může mysql importovat csv nebo jiný soubor txt do jednoho sloupce?

  2. Jak získat počet dní rozdílu mezi dvěma daty na MySQL?

  3. Při pokusu o získání dat z databáze MySQL pomocí PHP se nezobrazují hodnoty koláčového grafu HighCharts

  4. Jak zakázat omezení CHECK v SQL Server (příklady T-SQL)