Warning: Truncated incorrect DOUBLE value

2012-09-28 09:33:13 +08:00
 zzxworld
代码:
tagsId = [1,2,3]
self.db.query("""select good_id from goods_tags where tag_id in(%s)""", ','.join([str(tid) for tid in tagsId]) )

错误警告:
Warning: Truncated incorrect DOUBLE value: '1,2,3'

蛋疼的解决方法:
self.db.query("""select good_id from goods_tags where tag_id in(%s)""" % ','.join([str(tid) for tid in tagsId]) )

所以怀疑是使用%s被mysqldb给转换后给in查询参数了引号所致。请问各位在tornado中有没有碰到这种问题?是怎么解决的?
6017 次点击
所在节点    Tornado
1 条回复
nodexy
2014-12-17 10:33:51 +08:00
主要原因是你where语句中设置查询条件的field ,所给出的值类型要与mysql里的类型一致,否则就会保持据类似 Warning: Truncated incorrect DOUBLE value: ... 这样的错误,我也遇到了。

我是有一个字段 grade 为 char 型,查询的时候用 where grade=1 就报这个错,但是改成 grade='1' 就oK了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/48897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX