V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
geew
V2EX  ›  问与答

有关 torndb query 传入变量的问题

  •  
  •   geew · Dec 8, 2014 · 2140 views
    This topic created in 4167 days ago, the information mentioned may be changed or developed.
    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 replies    2014-12-09 00:29:59 +08:00
    geew
        1
    geew  
    OP
       Dec 9, 2014
    解决了 是我的用法有问题, %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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4037 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:53 · PVG 08:53 · LAX 17:53 · JFK 20:53
    ♥ Do have faith in what you're doing.