SQL ORDERING不能用于字符串格式化

时间:2014-01-27 07:36:18

标签: python sql sql-order-by

所以我有这个sql,它有效:

cursor.execute('select * from video_title_difference where title like 
                %s order by provider desc limit %s offset %s', 
                ('%' + search + '%', limit, offset))

但如果我将ORDER BY变量(现在是'provider')更改为变量,它根本不起作用:

cursor.execute('select * from video_title_difference where title like %s 
                order by %s limit %s offset %s', 
               ('%' + search + '%', order_by, limit, offset))

它“有效”,但根本没有订购。我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

问题是您正在尝试将表设置为参数。

表名不能参数化。

我的方法是在代码中对表名进行硬编码,您需要了解获取表名可能会导致安全问题,尤其是来自用户。

我会在这个问题上添加一些帖子:

post1post2