美文网首页
mysql如何使用in查询动态拼接参数

mysql如何使用in查询动态拼接参数

作者: wowshiwoniu | 来源:发表于2018-11-22 19:00 被阅读0次

    今天再工作中需要用到拼接一个原生sql,里面有用到select * from t_order where order_no in ("xx", "xx", "xx"...) 形式的sql语句,order_no是不确定的,如何匹配拼接处期望的sql?参考地址

    通过传参执行
    format_strings = ",".join(['%s'] * len(order_no_list))
    cursor.execute("select * from t_order where order_no in (%s)" % format_strings, tuple(order_no_list))
    
    直接拼sql语句执行
    format_strings = ",".join(["'%s'"] * len(order_no_list)) % tuple(order_no_list)
    cursor.execute("select * from t_order where order_no in (%s)" % format_strings)
    

    python中执行sql特别需要注意 %s 匹配这个问题,如果 "%s" 没有带引号,就会默认为 int 来处理,对于字段并非纯数字的,会报类型异常错误,然而对于字段为纯数字的,虽然本质是字符串,但是数据库也支持自动按照int来查询,但是假如这个字段包含了索引,就会影响查询速率

    相关文章

      网友评论

          本文标题:mysql如何使用in查询动态拼接参数

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