PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come utilizzare ilike sqlalchemy sul campo dell'array postgresql?

Per utilizzare il campo dell'array postgresql è necessario utilizzare unnest() function.Ma non puoi usare il risultato di unnest() in where clausola.

Invece, puoi usare array_to_string funzione. Ricerca sulla stringa di other_names darà lo stesso effetto

from sqlalchemy import func as F
last_like = "%qq%"
matches = session.query(MyTable).filter(or_(
    MyTable.name.ilike(last_like),
    F.array_to_string(MyTable.other_names, ',').ilike(last_like),
)).all()