python format 在sql中对 string 和 int 类型的变化
2017-03-16 12:17
351 查看
今天在使用format拼sql语句时遇到一下问题:
其中数据库中first_16字段是text类型
上述q0和q1执行format:
数据看中字段first_16是text类型,q0.format(s)出现text=int,执行出错; 所有像q1一样手动添加单引号是必须的.
其中数据库中first_16字段是text类型
>>> s = '12345' >>> q0 = "select nid from news_simhash where first_16={0}" >>> q1 = "select nid from news_simhash where first_16='{0}'" >>> from doc_process import get_postgredb_query >>> conn, cursor = get_postgredb_query() >>> cursor.execute(q0.format(s)) #出错 Traceback (most recent call last): File "<stdin>", line 1, in <module> psycopg2.ProgrammingError: operator does not exist: text = integer >>> conn2, cursor2 = get_postgredb_query() >>> cursor2.execute(q1.format(s)) #正确执行
上述q0和q1执行format:
>>> q0.format(s) 'select nid from news_simhash where first_16=12345' >>> q1.format(s) "select nid from news_simhash where first_16='12345'"
数据看中字段first_16是text类型,q0.format(s)出现text=int,执行出错; 所有像q1一样手动添加单引号是必须的.
相关文章推荐
- MyBatis-xml配置SQL文件中,传入List数组、基本类型String、int……、与自定义类型的方法
- JavaSE8基础 String.format %d%o%x 输出int类型的变量
- SQL语句数据类型转换,int——string
- SQL string类型的数据按int类型排序
- java和python中的string和int数据类型的转换
- python_int类型转string
- SQL中时间数值int类型转换为时间类型
- String数组的输入转换成int类型后再进行排列
- 在C#中,string 类型可与SQL SERVER中的int 类型作比较
- Hibernate操作Blob类型字段出现java.lang.AbstractMethodError: oracle.jdbc.driver.OracleResultSetImpl.getBlob(Ljava/lang/String;)Ljava/sql/
- Sql2005下以GUID、INT、VARCHAR类型作主键及无主键时插入表的效率测试
- string,char,int类型的相互转换
- Hibernate继承映射的“Could not format discriminator value to SQL string”错误解决方法
- string和int间的类型转换
- 解决"sqlparametercollection 仅接受非空的 sqlparameter 类型对象,不接受 string 对象"
- 无法将类型"int"隐式转换为"string"
- SQL Server int类型值最大2147483647(2^31 - 1)
- Hibernate继承映射的“Could not format discriminator value to SQL string”错误解决方法
- sql 将 varchar 值转换为数据类型为 int 的列时发生语法错误 的解决办法
- C# 中WebService返回类型(string,int,bool,DataSet,class实体类)示例