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

Cách tốt nhất để chọn động tên bảng trong thời gian chạy là gì?

Bạn không thể ký hiệu hóa một số nhận dạng (tên bảng hoặc tên trường) trong MySQL, tuy nhiên, bạn có thể thoát chúng bằng cách sử dụng dấu gạch ngược.

Truy vấn sau sẽ chạy an toàn nhưng tạo ra lỗi vì bảng không tồn tại (trừ khi do một cơ hội kỳ lạ nào đó bạn thực sự có một bảng có tên như thế này):

SELECT * FROM `users; DROP TABLE users;`;

Về cơ bản, bạn có thể sử dụng tên động hoặc trường miễn là chúng được đặt trong dấu gạch ngược. Để ngăn chặn việc đưa vào SQL theo cách này, trước tiên, tất cả những gì bạn cần làm là loại bỏ bất kỳ dấu nền nào:

tableName = tableName.Replace("`", "");
string commandText = "SELECT COUNT(*) FROM `" + tableName + "`";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hiệu quả nhất để chọn n hàng cuối cùng trong bảng mà không thay đổi cấu trúc của bảng là gì?

  2. Ảnh chụp nhanh khối lượng EBS được sử dụng để sao chép

  3. Đầu ra cơ sở dữ liệu PHP không hiển thị đúng cách

  4. Tính toán delta (sự khác biệt của hàng hiện tại và hàng trước đó) nhóm mysql theo cột cụ thể

  5. Làm thế nào để tạo một lớp mở rộng mysqli thích hợp với các câu lệnh đã chuẩn bị?