sql = '''
SELECT
a.auth_code,a.user_name,a.product_code,a.price,a.content_id,a.status,a.pay_status,a.effect_time,
a.invalid_time,a.sub_time,a.source,a.creater,a.create_time,a.updater,a.update_time,a.sn,a.customer, '' as product_name
FROM
t_auth_info a
where
(case when '%s' != '' then a.product_code = '%s' else 1 = 1 end) and
(case when '%s' != '' then a.user_name LIKE '%s' else 1 = 1 end) and
(case when '%s' != '' then a.sn LIKE '%s' else 1 = 1 end) and
(case when '%s' != '' then a.customer LIKE '%s' else 1 = 1 end) and
(case when '%s' != '' then a.content_id = '%s' else 1 = 1 end) and
(case when '%s' != '' then a.source = '%s' else 1 = 1 end) and
(case when '%s' != '' then a.status = '%s' else 1 = 1 end) and
(case when '%s' != '' then a.pay_status = '%s' else 1 = 1 end) and
(case when '%s' != '' then a.invalid_time >= '%s' else 1 = 1 end) and
(case when '%s' != '' then a.invalid_time <= '%s' else 1 = 1 end) and
(case when '%s' != '' then a.sub_time >= '%s' else 1 = 1 end) and
(case when '%s' != '' then a.sub_time <= '%s' else 1 = 1 end)
ORDER BY a.sub_time DESC
LIMIT %d OFFSET %d
''' % (product_code, product_code,
ott_name, "%" + ott_name + "%",
sn, "%" + sn + "%",
customer, "%" + customer + "%",
content_id, content_id,
source, source,
status, status,
pay_status, pay_status,
begin_invalid_time,begin_invalid_time,
end_invalid_time,end_invalid_time,
begin_sub_time, begin_sub_time,
end_sub_time, end_sub_time,
results_per_page, offset)
count_sql = "SELECT " \
"count(a.auth_code) " \
"FROM " \
"t_auth_info a " \
"where " \
"(case when '%s' != '' then a.product_code = '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.user_name LIKE '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.sn LIKE '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.customer LIKE '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.content_id = '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.source = '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.status = '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.pay_status = '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.invalid_time >= '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.invalid_time <= '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.sub_time >= '%s' else 1 = 1 end) and " \
"(case when '%s' != '' then a.sub_time <= '%s' else 1 = 1 end)" % \
(product_code, product_code,
ott_name, "%" + ott_name + "%",
sn, "%" + sn + "%",
customer, "%" + customer + "%",
content_id, content_id,
source, source,
status, status,
pay_status, pay_status,
begin_invalid_time, begin_invalid_time,
end_invalid_time, end_invalid_time,
begin_sub_time, begin_sub_time,
end_sub_time, end_sub_time)
key_list = ["authCode", "userName", "productCode", "price", "contentId", "status", "payStatus", "effectTime",
"invalidTime", "subTime", "source", "creater", "createTime", "updater", "updateTime", "sn",
"customer","productName"]
# 执行sql得出结果
select_result = session.execute(sql)
sql_result = select_result.fetchall()
# 计算总条数
count_result = session.execute(count_sql)
total_size = count_result.fetchone()[0]
使用原生sql写python
最新推荐文章于 2024-04-14 20:33:09 发布