from sqlalchemy import func
# 假定 classes 已经被定义且是一个有效的 ID 列表
banji_data = System_banji.query.filter(
System_banji.id.in_(classes),
System_banji.is_leave == 0
).order_by(
func.substr(System_banji.banji, 1, 6).desc(),
func.substr(System_banji.banji, 7).asc()
).all()
# 处理结果
for item in banji_data:
print(item)
这是一个使用 SQLAlchemy 的查询,目的是从 System_banji
表中筛选和排序数据。下面是代码的逐步解释以及一些可能的优化或注意事项:
代码解释
1.查询构建System_banji.query.filter(
System_banji.id.in_(classes),
System_banji.is_leave == 0
)
- 这个查询从
System_banji
表中筛选出id
在classes
列表中的记录,并且is_leave
字段等于 0(表示未离开)。
.order_by(
func.substr(System_banji.banji, 1, 6).desc(), # 降序排序,提取前6个字符
func.substr(System_banji.banji, 7).asc() # 升序排序,提取从第7个字符到结束的部分
)
- 使用
func.substr
提取字符串的子串,以banji
字段的前6个字符进行降序排序,然后按第7个字符之后的部分进行升序排序。
本文转载自互联网,如有侵权,联系删除。