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

Sử dụng Python để truy cập SQL với tên cột biến

Vấn đề có thể là do sử dụng %s cho tên cột. Điều đó có nghĩa là Trình điều khiển SQL sẽ cố gắng thoát khỏi biến đó khi nội suy nó, bao gồm cả trích dẫn, đây không phải là điều bạn muốn cho những thứ như tên cột, tên bảng, v.v.

Khi sử dụng giá trị trong SELECT , WHERE , v.v. thì bạn muốn sử dụng %s để ngăn chặn tiêm SQL và cho phép trích dẫn, trong số những thứ khác.

Ở đây, bạn chỉ muốn nội suy bằng cách sử dụng python thuần túy. Điều đó cũng có nghĩa là không có tuple ràng buộc nào được truyền cho phương thức thực thi.

def findmin(column):
    cur = db.cursor()
    sql = "SELECT MIN({0}) FROM table".format(column)
    cur.execute(sql)
    mintup = cur.fetchone()

SQL fiddle hiển thị SQL đang hoạt động:

http://sqlfiddle.com/#!2/e70a41/1




  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 chia bản ghi bảng MySQL thành một nửa để hiển thị trên mỗi bên của trang

  2. Bạn có thể chia một bí danh này cho một bí danh khác trong MySQL không?

  3. Doctrine:VỀ CẬP NHẬT KHÓA DUPLICATE

  4. Cách ly mức giao dịch ảnh hưởng đến tốc độ thực hiện ở chế độ tự động gửi trong MySQL như thế nào?

  5. Khóa ngoại có thể tham chiếu đến một chỉ mục không phải là duy nhất không?