美文网首页
python sql说明再续

python sql说明再续

作者: 李鸭还有礼了 | 来源:发表于2019-05-27 23:32 被阅读0次
    name (VARCHAR) sex(VARCHAR) id (VARCHAR)
    Bob female 1
    Jim male 2

    数据库存在上述的人员信息表people,在实际python执行过程会出现以下的代码

    sql="select * from  people  where id=%s and name =%s " 
    cursor.execute(sql,[1,'Bob']) 
    

    但是在实际执行过程中会报以下错误:

    No operator matches the given name and argument type(s)
    

    产生的原因是因为表格的id是char型,但是在实际传入的过程中,传入的id是为int型的,因此会产生上述报错;
    因此在实际的执行过程中需要涉及到参数的类型的转化;

    如以下转化

    方式一:使用cast关键字

    SELECT name FROM people id = cast(%s as VARCHAR) and  name= %s
    

    方式二:
    字段 :: 需要转换为的数据类型

    SELECT name FROM people name=%s and  id =s% ::VARCHAR
    cursor.execute(sql,['Bob',1]) 
    

    个人更推荐第一种方法 ,不喜勿喷 :)

    相关文章

      网友评论

          本文标题:python sql说明再续

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