这是一个创建于 3663 天前的主题,其中的信息可能已经有所发展或是发生改变。
In [43]: conn.query('select %s from topic order by %s limit 2', 'id', 'id desc')
Out[43]: [{'id': u'id'}, {'id': u'id'}]
In [44]: conn.query('select id from topic order by id desc limit 2')
Out[44]: [{'id': 10L}, {'id': 9L}]
一直是这么用的, 之前都没发现问题, 怎么现在就有问题了呢? 真是搞不懂了, 为啥以上两个执行结果不一样呢? query的变量不是这么传进去的吗
1 条回复 • 2014-12-09 00:29:59 +08:00
|
|
1
geew 2014-12-09 00:29:59 +08:00
解决了 是我的用法有问题, %s是用来传变量的, 不应该用来传列名或者sql关键字, 因为这会被mysqldb做转化. In [43]: conn.query('select %s from topic order by %s limit 2', 'id', 'id desc') Out[43]: [{'id': u'id'}, {'id': u'id'}] -- 实际执行的是 select 'id' from topic order by 'id desc' limit 2
|