如何获取 `<class 'flask_sqlalchemy.BaseQuery'>` 的列表值?
How to get a list value of `<class 'flask_sqlalchemy.BaseQuery'>`?
我使用下面的 flask 代码
test_flag = db.session.query(TestTable.flag).distinct()
是SQL,共[SQL: SELECT DISTINCT test_table.flag AS test_table_flag FROM test_table
flag
1
2
3
如何获取db.session.query(TestTable.flag).distinct()
的列表值?
我需要这样的输出[1,2,3]
,我想做的是确保2是否在[1,2,3]
您可以使用它来生成您的 flags
列表
flag_list = [each.flag for each in db.session.query(TestTable.flag).distinct()]
然后你可以使用下面的命令来确定2
是否存在于flag_list
中。如果它确实存在那么它将 return True
否则 False
2 in flag_list
您可以在数据库端检查值,而不必检索所有不同的值。如果您不需要 Python 级别的所有值,或者如果 table.
中有很多行,这可能会更有效
# Assuming there are rows containing 1, 2 and 3.
flags = db.session.query(True).filter(db.exists().where(TestTable.flag == 2)).scalar()
flags = db.session.query(True).filter(db.exists().where(TestTable.flag == 4)).scalar()
第一个查询将 return True
,第二个将 return None
.
类似地,您可以查询具有所需值的行数以查看是否存在,但 exists 构造更有效,因为它会在找到与过滤器匹配的第一个值后停止搜索.
我使用下面的 flask 代码
test_flag = db.session.query(TestTable.flag).distinct()
是SQL,共[SQL: SELECT DISTINCT test_table.flag AS test_table_flag FROM test_table
flag
1
2
3
如何获取db.session.query(TestTable.flag).distinct()
的列表值?
我需要这样的输出[1,2,3]
,我想做的是确保2是否在[1,2,3]
您可以使用它来生成您的 flags
flag_list = [each.flag for each in db.session.query(TestTable.flag).distinct()]
然后你可以使用下面的命令来确定2
是否存在于flag_list
中。如果它确实存在那么它将 return True
否则 False
2 in flag_list
您可以在数据库端检查值,而不必检索所有不同的值。如果您不需要 Python 级别的所有值,或者如果 table.
中有很多行,这可能会更有效# Assuming there are rows containing 1, 2 and 3.
flags = db.session.query(True).filter(db.exists().where(TestTable.flag == 2)).scalar()
flags = db.session.query(True).filter(db.exists().where(TestTable.flag == 4)).scalar()
第一个查询将 return True
,第二个将 return None
.
类似地,您可以查询具有所需值的行数以查看是否存在,但 exists 构造更有效,因为它会在找到与过滤器匹配的第一个值后停止搜索.