如何在SQLAlchemy中执行LIKE查询?

5 投票
1 回答
8558 浏览
提问于 2025-04-18 13:49

我正在使用 sqlalchemy 从数据库表中获取数据。目前,从一个叫 audit_trail_table 的表中获取所有记录的功能正常。

select_stmt = select([self.audit_trail_table]).where(self.audit_trail_table.c.id == int(id))
row = conn.execute(select_stmt).fetchone()

现在我想在多个列上执行 LIKE 查询,像这样:

filter_query = #(some value which will work as a filter_query while fetching )records
filter_stmt = select([self.audit_trail_table]).where(self.audit_trail_table.c.first_name like '%' + filter_query + '%' or self.audit_trail_table.c.last_name like '%')

但是在使用 LIKE 的时候出现了错误。我该怎么做才能实现这个功能呢?

1 个回答

7

你可以使用 like 这个操作符:

select([self.audit_trail_table]).where(
    self.audit_trail_table.c.first_name.like('%' + filter_query + '%') or 
    self.audit_trail_table.c.last_name.like('%abc%')
)

撰写回答