python - 使用烧瓶 sqlalchemy 在查询语句中对查询结果进行编号
问题描述
我想给查询的每一行一个排序号,我知道MySql环境中的SQL语句。用我的测试数据库,没有顺序的sql语句是:
SELECT `department`.`name` AS `department`, `staff`.`firstName` AS `firstName`, `staff`.`lastName` AS `lastName` FROM `department`,`staff` WHERE `staff`.`department_id`=`department`.`id`;
而它在MySql中的查询结果是:
上述sql语句的相关编号sql语句为:
SELECT (@i:=@i+1) AS `id`,`department`.`name` AS `department`, `staff`.`firstName` AS `firstName`, `staff`.`lastName` AS `lastName` FROM `department`,`staff`,(SELECT @i:=0) AS `tmp` WHERE `staff`.`department_id`=`department`.`id`;
而它在MySql中的查询结果是:
我也知道python中第一个没有数字的flask sqlalchemy语句可以是:
qList=db.session.query(Department.name.label("department"),Staff.firstName.label("firstName"),Staff.lastName.label("lastName")).select_from(Department,Staff).filter(Staff.department_id==Department.id).all()
这会给我一个包含上述数据的列表。
但是如何在flask sqlalchemy 语句中编写(SELECT @i:=0) AS
tmp id 部分?" and "(@i:=@i+1) AS
我使用烧瓶 1.0.2 ,flask_sqlalchemy 2.3.2 。
解决方案
推荐阅读
- javascript - React 中的 Google 登录视图
- apache-spark - 如果我明确传递模式,是否需要在 spark 中使用“mergeSchema”选项和镶木地板?
- python - Python:我不确定为什么我的不和谐机器人代码会出现此错误
- node.js - Node中的简单缓冲双工流 - 如何?
- javascript - 在任何网页上获取点击的元素
- javascript - NextJS 的持续关注
- erlang - Elixir/Erlang :gen_udp 伪标头
- ruby-on-rails - Rails:我想嵌套一个具有 nn 关系的路由来获取两个参数
- python - 如何在具有线性模型的 IV2SLS 中按实体和年份进行聚类?
- python - Anaconda Navigator 无法在 Windows 10 上打开