Python Django中原始MySQL查询中的语法错误
我在django中使用原始mysql查询,但有限制(限制是动态的,在Url中提到),例如 此限制值来自URLPython Django中原始MySQL查询中的语法错误,python,mysql,django,Python,Mysql,Django,我在django中使用原始mysql查询,但有限制(限制是动态的,在Url中提到),例如 此限制值来自URLwww.asd.com/qwe/?limit=5,我将此值捕获为limit\u value=request.GET.GET('limit'),当我打印此限制值时,它将打印5表示我可以从URL获取限制值,但当我在上面的select查询中提到它时,如我所示。它会抛出错误 (1064,“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“5”附近使用的正确语法”) 但
www.asd.com/qwe/?limit=5
,我将此值捕获为limit\u value=request.GET.GET('limit')
,当我打印此限制值时,它将打印5表示我可以从URL获取限制值,但当我在上面的select查询中提到它时,如我所示。它会抛出错误
(1064,“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“5”附近使用的正确语法”)
但若我在文件中提到限制值为limit\u value=5
,并在select查询中使用它,正如我上面所示,它将起作用
所以这意味着,若我在URL中提到它并将其捕获到文件中,那个么select查询中的限制将不起作用。为什么?或者我还缺什么
我的问题是:
SELECT DISTINCT
A.entity_id AS entity_id,
A.email AS email,
A.catquizid AS style_quiz_score,
A.catquizquesans AS style_quiz_answer,
A.created_at AS date_joined,
A.is_active AS is_active,
B.attribute_id AS attribute_id,
B.value AS info
FROM customer_entity AS A
inner join customer_entity_varchar AS B on A.entity_id=B.entity_id
WHERE B.attribute_id
limit %s
您的
limit\u值是一个字符串,而不是一个整数,因此作为SQL参数,它被加上引号
试试这个:
cursor.execute("some select query limit %s", (int(limit_value),))
您的limit\u值是一个字符串,而不是一个整数,因此作为SQL参数,它被加上引号
试试这个:
cursor.execute("some select query limit %s", (int(limit_value),))
您的查询格式似乎有误,您想执行什么查询?确定我编辑我的问题,但如果我在文件中提到限制而不是url中,那么相同的查询将起作用。我已编辑了我的问题,请查看其中的B.attribute\u id
检查此处其中B.attribute_id=
参数化查询应该是不可变的。您想要cur.execute(“sql%s”,(param),)
您的查询格式似乎有误,您想要执行什么查询确定我编辑了我的问题,但是如果我在文件中提到限制而不是url中,那么相同的查询将起作用我已经编辑了我的问题,请查看WHERE B.attribute\u id
检查这里其中B.attribute_id=
参数化查询应该是不可变的。您需要cur.execute(“sql%s”,(param),)
是的,这就是问题所在,现在工作正常,谢谢@MartijinYes这就是问题所在,现在工作正常,谢谢@Martijin