使用原生sql写python

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]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值