gpt4 book ai didi

python - 在 SQLAlchemy 过滤器表达式中执行 "ilike or ilike"时出现类型错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:51 24 4
gpt4 key购买 nike

我想通过匹配名字和姓氏字段来搜索用户。

在普通 SQL 中我会这样做:

SELECT * FROM user
WHERE (first_name ILIKE 'pattern') OR (last_name LIKE 'pattern');

我正在使用 SQLAlchemy 尝试以下操作:

User.query().filter(User.last_name.ilike(pattern) \
or User.first_name.ilike(pattern))

我收到以下错误:TypeError:未定义此子句的 bool 值

在相同的上下文中,通过 or 组合两个完全匹配 (==) 是可行的,所以我推断我的问题与 ilikeor 运算符不兼容。

有什么提示吗?

谢谢

最佳答案

您不能在 SQLAlchemy 中以这种方式使用。它有自己的 or_ 函数:

query.filter(or_(expr1, expr2))

具体来说:

User.query().filter(or_(User.last_name.ilike(pattern),
User.first_name.ilike(pattern)))

对于 and_not_in_(可能还有更多)也是如此。我认为你可以做类似expr1 | expr2 但我不确定。

关于python - 在 SQLAlchemy 过滤器表达式中执行 "ilike or ilike"时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com