这是一个创建于 3980 天前的主题,其中的信息可能已经有所发展或是发生改变。
    
    
    
        
        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
     
    
    
        
        
        
        
            
                |  |  |      1geew      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
 |