python 根據傳進來的引數,動態拼接sql
阿新 • • 發佈:2021-12-07
根據傳進來的引數,動態拼接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)