Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara melewatkan string sebagai klausa WHERE di MYSQL

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana mengonversi kursor SQL Server ke setara MySQL

  2. Laravel bergabung dengan kueri AS

  3. Menggunakan Python untuk mengakses SQL dengan nama kolom variabel

  4. Golang ORDER BY masalah dengan MySql

  5. menentukan classpath untuk jython mandiri