PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

SqlAlchemy:Menanyakan panjang bidang json yang memiliki array

Menemukan solusi

Buat kelas yang memperluas FunctionElement seperti ini

from sqlalchemy.sql.expression import FunctionElement
from sqlalchemy.ext.compiler import compiles
class json_array_length(FunctionElement):
    name = 'json_array_len'

@compiles(json_array_length)
def compile(element, compiler, **kw):
    return "json_array_length(%s)" % compiler.process(element.clauses)

dan gunakan seperti ini

session.query(Post.id, json_array_length(Post.items))

Catatan:ini akan berfungsi pada postgres karena fungsi 'json_array_length' didefinisikan di dalamnya. Jika Anda menginginkan ini untuk DB yang berbeda, fungsi itu perlu diubah. Lihat http://docs.sqlalchemy.org/en/rel_0_9/core/compiler.html#further-examples



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat terhubung ke database Postgres dari wadah golang Docker

  2. Go sql - cakupan pernyataan yang disiapkan

  3. Fungsi INSERT massal Postgres menggunakan argumen JSON

  4. Menguji fungsi PostgreSQL yang menggunakan dan mengembalikan refcursor

  5. Apa format untuk string / URL koneksi PostgreSQL?