python 根據傳進來的參數,動態拼接sql


根據傳進來的參數,動態拼接sql,可用於實現一個方法,有些字段不確定,又用到的情況,如查詢,三個查詢條件,有的時候只用到一個查詢條件,其他用不到則不需要拼接

 

 

 

    def show_runjob_detail(self, conditionList, valueList, fieldlist, rows):
        '''
        根據傳進來的列名、具體的值和返回的字段的個數,動態查詢定時任務的信息
        param:conditionList:要查詢的具體的列名
        param:valueList:要查詢具體列名的值
        param:fieldlist:select語句要查詢出來的表的字段
        param:rows:行數
        '''
        fieldlist = []
        if len(fieldlist) == 0:
            fieldlist = ['id', 'job_id', 'test_suite_id', 'name', 'runtime', 'status']
        search_value = fieldlist[0]
        log.log().logger.info(fieldlist)
        for i in range(1, len(fieldlist)):
            # 將傳進來的fieldlist拼接起來
            search_value = search_value + ','+fieldlist[i]
        condition = ' status not in (5) '
        for i in range(len(conditionList)):
            if len(valueList[i]):
                # 循環遍歷列名和具體的值,有具體的value值,繼續拼接sql
                condition = condition + ' and ' + str(conditionList[i]) + ' like "%' + str(valueList[i]) + '%"'
        sql = 'select ' + str(search_value) + ' from test_run_job where ' + str(condition) \
              + ' order by id desc limit '+str(rows)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM