我想使用SQLAlchemy过滤包含子字符串的JSONB字段。
我知道我可以使用contains()找到完全相同的键,但是我想找到该键的子字符串。就像对文本字段使用ilike()一样。我想对列,收件人和参数都这样做。但是,如果我能得到帮助,我将在第二栏中找到如何做。
class NotificationMixin:
id = Column(Integer, primary_key=True)
recipient = Column(JSONB, nullable=False)
params = Column(JSONB, default={})
class EmailResource(AdminDataTableResource):
def _apply_filters(self, emails, filters):
for key in filters.items():
f_name = key[0]
f_val = key[1]
if len(f_val) > 0:
if f_name == 'recipient':
emails = emails.filter(Email.recipient.contains('"' + f_val + '"'))
if f_name == 'shipment_number':
emails = emails.filter(Email.params["shipment_number"].contains('"' + f_val + '"'))
我可以使用contains()以某种方式像ilike()一样吗?如果没有,我该如何过滤子字符串?有什么想法吗?