问题描述
我将peewee
与sqlite
一起使用。我的一个模型包含JSONField
(docs link),现在我需要查询该字段包含我的字符串的所有行。
class Market(Model):
...
data = JSONField()
class Meta:
database = db
Market.select().where(Market.data.contains(search))
示例数据:
-
Market.data
:['123','456','789']
-
search
:456
如何查找Market.data
字段包含search
文本的所有行?
解决方法
sqlite json1扩展不提供“包含”功能。您可能想使用json_each()
或json_tree
表值函数:
https://sqlite.org/json1.html#examples_using_json_each_and_json_tree _
Sqlite json1扩展文档:
Peewee sqlite json1扩展文档:
http://docs.peewee-orm.com/en/latest/peewee/sqlite_ext.html#sqlite-json1