Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách chuyển một chuỗi dưới dạng mệnh đề WHERE trong MYSQL

Hãy thử điều này:

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;

Tôi tin rằng bạn phải sử dụng @var cú pháp cho các biến. Ngoài ra, để thực hiện một truy vấn được lưu trữ trong một chuỗi, bạn phải sử dụng PREPAREEXECUTE .

Và bạn không cần phải sử dụng UPPER trên chuỗi. Theo mặc định, MySQL so sánh các chuỗi không phân biệt chữ hoa chữ thường. Bạn có thể đảm bảo điều đó bằng cách xem xét loại đối chiếu cho các trường của bạn. ci_ những cái viết tắt của "phân biệt chữ hoa chữ thường".




  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 pymySQL gửi một chuỗi có dấu ngoặc kép

  2. Chọn (các) bản ghi từ bảng mysql có ngày lớn hơn hoặc bằng ngày hôm nay

  3. Bao gồm các giá trị KHÔNG ĐƯỢC TÌM HIỂU trong kết quả truy vấn MySQL

  4. liệt kê tất cả các bảng trong cơ sở dữ liệu với MySQLi

  5. Cách di chuyển MYSQL DB cục bộ lên máy chủ DB từ xa