可以使用MySQL的JSON_CONTAINS函数来查询json字段中是否包含某个字段,具体语句如下:
from peewee import *
# 定义数据模型
class User(Model):
id = IntegerField(primary_key=True)
name = CharField()
info = JSONField()
class Meta:
database = MySQLDatabase('test', host='localhost', port=3306, user='root', password='password')
# 查询info字段中是否包含name为John的记录
query = User.select().where(fn.json_contains(User.info, {'name': 'John'}))
for user in query:
print(user.id, user.name, user.info)
其中,fn.json_contains函数接收两个参数:第一个是要查询的json字段,第二个是要匹配的json对象。如果给定的json对象在json字段中出现,则返回True。如果查询结果为空,则说明找不到符合条件的记录。




