Python以编程方式将尾随逗号添加到元组的末尾

时间:2019-04-01 18:29:09

标签: python mysql

我正在构建选择查询,并以编程方式向其添加元素。问题是我需要值元组有一个逗号结尾。我该怎么办?

def build_search_query(user_list, make, model, price_min, price_max):
    sql = """SELECT * FROM mycolumn WHERE user_id = %s, """   
    for i, d in enumerate(user_list):        
        if not i == 0: #skip first user because its already in sql
            next_user = "OR user_id = %s, "
            sql += next_user
    age_str = "AND age = %s, "
    height_str = "AND height = %s, "
    price_min_str = "AND price > %s, "
    price_max_str = "AND price < %s "
    sql += age_str
    sql += height_str
    sql += price_min_str
    sql += price_max_str
    tuple1 = tuple(user_list)    
    tuple2 = (age, height, price_min, price_max,)
    values = tuple1 + tuple2 #this is where I need the trailing comma
    return sql, values

2 个答案:

答案 0 :(得分:2)

非常简短,您不能。 value 是元组的内部表示。因此,它没有括号也没有逗号:这些仅仅是人类阅读的便利。

根据定义,元组具有该逗号。由于您返回的是 value 而不是打印图像(用于输出的字符串表示形式),因此我不确定要从何处引导您。

答案 1 :(得分:1)

我查看了您的代码,并在第一个条件之后选择了SQL中任何条件下的任何内容,只需要AND这样的逗号即可

SELECT * FROM mycolumn WHERE user_id = %s

age_str = " AND age = {}".format(something)