参考链接:https://www.cnblogs.com/kaerxifa/p/13476317.html
1.模糊查询
原生sql写法:
SELECT * FROM 表名 WHERE 字段名 LIKE '%匹配内容%' ;
利用sqlalchemy实现模糊查询:
center_filter = db.query(BudgetOrganizational).filter(
BudgetOrganizational.center_name.like('%'+ center_name +'%')
).all()
解释:利用 .like('%匹配内容%') 实现模糊查询
备注:BudgetOrganizational是一个数据模型;第一个center_name是数据模型中的一个字段;第二个center_name 是一个变量,由前端传递过来的;
遇到问题:匹配内容是 变量 怎么办?
解决方案:直接用 + 拼接 就好啦 ~
2.数据去重
(1). distinct
# 去重查询distinct
from sqlalchemy import distinct
session.query(distinct(BudgetOrganizational.center_name)).all()
(2). group_by
session.query(BudgetOrganizational.center_name).group_by(BudgetOrganizational.center_name).all()
注意:一般查询出来的结果都是列表,要想转换查询结果类型,不需要for循环然后把每个元素打印出来看type类型(一般是<class 'sqlalchemy.engine.row.Row'>),看了也不知道如何转换
最好的办法是直接将查询结果打印出来,然后想办法重组结果即可。
3.SQLAlchemy的简单使用
文章写的很nice,附上链接可参看~
博文链接: https://www.cnblogs.com/testlearn/p/14122184.html