目的:
1、查询结果

2、表结构
过程:
1、编写 函数(即存储过程)
PS:查询界面运行之后会在Navcat中的函数生成名为:getChildrenOrg 的函数
CREATE FUNCTION getChildrenOrg (orgid INT) RETURNS VARCHAR (4000)
BEGIN
DECLARE oTemp VARCHAR (4000);
DECLARE oTempChild VARCHAR (4000);
SET oTemp = '';
SET oTempChild = CAST(orgid AS CHAR);
WHILE oTempChild IS NOT NULL DO
SET oTemp = CONCAT(oTemp, ',', oTempChild);
SELECT
-- DeptID为主键,根据自己的表字段修改
GROUP_CONCAT(DeptID) INTO oTempChild
FROM
-- 表名
base_dept
WHERE
-- FatherID为上级ID,根据自己的表字段修改
FIND_IN_SET(FatherID, oTempChild) > 0;
END
WHILE;
RETURN oTemp;
END
2、 调用方法
-- getChildrenOrg (2) :此为过程1中的生成的存储过程; (2)是输出本级的ID,向下查询部门
SELECT * FROM base_dept WHERE FIND_IN_SET(DeptID,getChildrenOrg (2))
3、SQLAlchemy中调用
①、在创建连接 文件中创建cursor
db_url = 'mysql+pymysql://root:@127.0.0.1:3307/tornado9'
# py3 表生成模型
# sqlacodegen mysql+pymysql://root:@127.0.0.1:3307/la80?charset=utf8 --outfile la80_models.py
# 创建数据库引擎链接
engine = create_engine(db_url)
# 创建cursor
conn = engine.raw_connection()
cursor = conn.cursor()
②、在视图文件中导包
from Tornado9.Mytorndo.utils.conn import session_maker, cursor
class IndexHandler(tornado.web.RequestHandler):
def get(self):
sql = 'SELECT * FROM base_dept WHERE FIND_IN_SET(DeptID,getChildrenOrg (2))'
cursor.execute(sql)
res_data = cursor.fetchall()
res = res_data
print(res) # ((2, '00002', '财务部', None, 1), (3, '00003', '生产部', None, 2))
self.write('hello!')
PS:此测试文件在Tornado9文件夹中