python sql说明再续

2019-05-27  本文已影响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]) 

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

上一篇下一篇

猜你喜欢

热点阅读