python web.py db.update 问题

c_C_o_O 发布于 2014/04/05 22:29
阅读 740
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

db.update(table, where='id IN ($id)', vars={'id': id.split(',')})

id值为串"1,2",以上代码报错

OperationalError: (1241, 'Operand should contain 1 column(s)')

若换成:

db.update(table, where='id IN ($id)', vars={'id': id})

则报:Warning: Truncated incorrect DOUBLE value: '1,2'

莫非对于IN操作只能串拼接,不能参数替换?

加载中
1
c_C_o_O
c_C_o_O

http://ruby-china.org/topics/18429

db.update 的用法用错了,按照你的代码实现的 SQL 是这样的:

update table set where id in ((1, 2))

正确的用法是这样的:

db.update(table_name, where='id in $id', column_name='abc', vars={'id': [1, 2]})

生成的 SQL :

update table_name set column_name='abc' where id in (1, 2)




OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部