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

Truyền tên cột làm tham số trong MySQL

Đối với việc chuyển tên cột dưới dạng tham số trong MySQL (câu hỏi trong tiêu đề), điều đó không thể thực hiện được trong một câu lệnh SQL. Số nhận dạng trong một câu lệnh SQL (ví dụ:tên bảng và tên cột) phải là một phần của văn bản SQL. Không thể chuyển chúng bằng trình giữ chỗ ràng buộc.

IN toán tử so sánh mong đợi một danh sách các giá trị được bao trong các parens hoặc một truy vấn SELECT trong các parens trả về một tập hợp các giá trị.

Không rõ bạn đang cố gắng làm gì.

Tôi nghi ngờ rằng template_allowed_parent_templates là một cột trong bảng và nó chứa danh sách các giá trị được phân tách bằng dấu phẩy. (rùng mình.)

Tôi nghi ngờ rằng bạn có thể đang tìm kiếm FIND_IN_SET trong MySQL hàm chuỗi, sẽ "tìm kiếm" một danh sách được phân tách bằng dấu phẩy cho một giá trị cụ thể.

Như một minh chứng đơn giản:

  SELECT FIND_IN_SET('5', '2,3,5,7')
       , FIND_IN_SET('4', '2,3,5,7')

Hàm trả về một số nguyên dương khi giá trị được chỉ định được "tìm thấy". Bạn có thể sử dụng chức năng đó trong một vị từ, ví dụ:

WHERE FIND_IN_SET(id,template_allowed_parent_templates)

hoặc

WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)

(Điều này hoạt động vì trong MySQL, một số nguyên dương được đánh giá là ĐÚNG trong ngữ cảnh boolean.)

Tôi chỉ đoán những gì bạn đang cố gắng đạt được.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL SELECT DISTINCT phải phân biệt chữ hoa chữ thường?

  2. lưu trữ mảng numpy trong mysql

  3. Chọn dữ liệu giữa một phạm vi ngày / giờ

  4. Loại bỏ các bản sao trong bảng MySql lớn

  5. Chọn truy vấn trong hai bảng trong MySQL