在JSON字段上使用OR执行PostgreSQL匹配

时间:2016-11-30 10:48:57

标签: postgresql sqlalchemy flask-sqlalchemy

我有一个看起来像这样的模型

class Message(db.Model):

    content = db.Column(JSON)

我想在该字段上执行包含一些JSON字段的搜索

通常当我这样的事情发挥作用时

Message.query.filter(Message.content['summary'].cast(Unicode).match(search_term))

如果字段摘要不存在或为空

,现在我想使用或其他字段

使用或不使用强制转换失败,类型的编程错误需要是boolean

Message.query.filter(Message.content['summary'] | Message.content['text+video'].match(search_term)) 

1 个答案:

答案 0 :(得分:1)

感谢#sqlalchemy IRC频道上的 Elmer ,逻辑不正确,这就是我应该如何进行搜索

Message.query.filter(Message.content['summary'].cast(Unicode).match(search_term) | Message.content['text'].cast(Unicode).match(search_term))

有兴趣的人也应该点击此链接,其中有相关问题并提供更好的答案SQLAlchemy Text Matching data inside JSON field with UTF-8