【发布时间】:2015-02-27 22:18:14
【问题描述】:
我有一堆复杂的 sql 查询需要在 Django 上执行,而 Raw SQL 似乎是唯一的选择。我的参数是字符串,可以为空。为空的原因是我上面有条件语句,并且取决于需要执行正确的sql。但是当运行 ra sql 时,django 实际上会在 sql 中添加引号(我用它来表示字符串),因此它会引发错误。
我已简化查询以显示我面临的问题。以下查询在执行时会引发错误。
select_cond = ''
where_cond = 'id = 109'
qraw = Book.objects.raw(
"\
SELECT id %s\
FROM book\
WHERE %s\
",
[select_cond, where_cond]
)
错误是由于它被翻译如下。引号实际上进入了 sql,因此它不会执行。关于如何解决这个问题的任何想法?
SELECT id ''
FROM book
WHERE 'id = 109'
ORDER BY id DESC;
【问题讨论】:
标签: python mysql sql django django-models