美文网首页
python拼接 select in语句

python拼接 select in语句

作者: leyu | 来源:发表于2017-01-16 19:55 被阅读0次

    拼接sql语句时,有时候参数是一个列表,想实现select in语句的效果,比如sql语句:select * from user where userid in ('A', 'C'),但是只有列表参数args=['A', 'C'],首先尝试了如下方式:

    "select * from user where userid in (%s)"  % (','.join(args))
    

    发现会报错"Unknown column 'A' in 'where clause'',原因是拼接出来的没有带引号。最后拼成了

    select * from user where userid in (A, C)
    

    最后解决方案是:

    Python 3:

    args=['A', 'C']
    sql='SELECT fooid FROM foo WHERE bar IN (%s)'
     in_p=', '.join(list(map(lambda x: "'%s'" % x, args)))
    sql = sql % in_p
    cursor.execute(sql, args)
    

    Python 2:

    args=['A', 'C']
    sql='SELECT fooid FROM foo WHERE bar IN (%s)' 
    in_p=', '.join(map(lambda x: "'%s'" % x, args))
    sql = sql % in_p
    cursor.execute(sql, args)
    

    相关文章

      网友评论

          本文标题:python拼接 select in语句

          本文链接:https://www.haomeiwen.com/subject/gqmpbttx.html