簡體   English   中英

在django的原始SQL語法中出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM