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

Menggunakan Python untuk mengakses SQL dengan nama kolom variabel

Masalahnya kemungkinan adalah penggunaan %s untuk nama kolom. Itu berarti Driver SQL akan mencoba keluar dari variabel itu saat menginterpolasinya, termasuk mengutip, yang bukan yang Anda inginkan untuk hal-hal seperti nama kolom, nama tabel, dll.

Saat menggunakan nilai di SELECT , WHERE , dll. maka Anda ingin menggunakan %s untuk mencegah suntikan SQL dan mengaktifkan kutipan, antara lain.

Di sini, Anda hanya ingin melakukan interpolasi menggunakan python murni. Itu juga berarti tidak ada tuple binding yang diteruskan ke metode eksekusi.

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

Biola SQL menunjukkan SQL berfungsi:

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. MySQL Memahami Gabungan Dasar

  2. cara mengatur array sebagai variabel pengguna mysql

  3. Memperbarui data dalam database MySQL setelah memasukkan pengkodean yang salah

  4. MySQL concurrency, bagaimana cara kerjanya dan apakah saya perlu menanganinya di aplikasi saya

  5. subtotal dan total untuk string