![](/img/trans.png)
[英]Django: MySQL syntax error when passing parameters to raw SQL query
[英]Having an error in django's raw SQL syntax
我收到了錯誤
(1064,“你的SQL語法有錯誤;請查看與你的MySQL服務器版本相對應的手冊,以便在'弧度(151.20711)附近使用正確的語法)+ sin(弧度(-33.86714))* sin(弧度(緯度))))AS dist'在第1行“)
當我在代碼下面運行時。
query = '''SELECT id, longitude, latitude, (6378 * acos(cos(radians(-33.86714)) * cos(radians(latitude)) * cos(radians(longitude) – radians(151.20711)) + sin(radians(-33.86714)) * sin(radians(latitude)))) AS distance
FROM ads_suburb HAVING distance < 10 ORDER BY distance;'''
surrounded_suburbs = Suburb.objects.raw(query)
for suburb in surrounded_suburbs:
print(suburb.id)
我需要在哪里修理?
更新
我嘗試了另一種方法,但仍然得到同樣的錯誤。
cursor = connection.cursor()
cursor.execute('''SELECT id, longitude, latitude, (6378 * acos(cos(radians(-33.86714)) * cos(radians(latitude)) * cos(radians(longitude) – radians(151.20711)) + sin(radians(-33.86714)) * sin(radians(latitude)))) AS distance FROM ads_suburb HAVING distance < 10 ORDER BY distance;''')
ids = [row[0] for row in cursor.fetchall()]
print(ids)
我終於找到了解決方案。 這是因為“ - ”內部查詢。 我將“ - ”改為“ - ”,它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.