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

SQLAlchemy memaksa in_() untuk menggunakan literal

Di (pada saat penulisan ini mendatang) versi 1.4 Anda dapat menggunakan bindparam yang diperluas dengan literal_execute=True hanya untuk efek yang Anda cari:

In [2]: class Foo(Model):
   ...:     id = Column(Integer, primary_key=True)
   ...:     data = Column(Integer)

In [3]: metadata.create_all()

In [4]: session.query(Foo).\
   ...:     filter(Foo.data.in_(
   ...:         bindparam('xs', range(10), expanding=True, literal_execute=True))).\
   ...:     all()
2019-09-07 20:35:04,560 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-09-07 20:35:04,561 INFO sqlalchemy.engine.base.Engine SELECT foo.id AS foo_id, foo.data AS foo_data 
FROM foo 
WHERE foo.data IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
2019-09-07 20:35:04,561 INFO sqlalchemy.engine.base.Engine ()
Out[4]: []



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hubungkan ke Database MySQL di Jaringan Lokal

  2. Memasukkan Data dari dropdown ke database dengan PHP

  3. Masalah dengan validasi pengguna oleh httpBasic dan jdbcAuthentication di WebSecurityConfigurerAdapter

  4. Cara Mengubah Nilai Peningkatan Otomatis Database MySQL / MariaDB

  5. Alat MySQL yang mencari string di semua bidang, tabel, dan database