我想计算两点之间的距离。对于一个表中的每个点,我必须计算与同一数据库中另一个表中所有其他点的距离。我正在使用python,但我无法一次执行两个查询。
import mysql.connector
from haversine import haversine
cnx = mysql.connector.connect(host='localhost',user='xxxxx',passwd='xxxxxx',db='xxxxxx')
cursor = cnx.cursor()
cursor2 = cnx.cursor()
query = ("select longitude,latitude from roadData limit 5")
cursor.execute(query)
query2=("SELECT geo_coordinates_latitude, geo_coordinates_longitude from tweetmelbourne limit 2")
cursor2.execute(query2)
for (longitude,latitude) in cursor:
print longitude
print latitude
for (geo_coordinates_longitude,geo_coordinates_latitude) in cursor2:
print geo_coordinates_longitude
print geo_coordinates_latitude
cursor.close()
cnx.close()
但是,我在第二次查询执行时遇到错误
InternalError:找到未读结果。
我为游标尝试了buffer = true但仍然是同样的错误。 这样或任何其他更好的方式也是有效的。
答案 0 :(得分:0)
您可以在这里使用的一个技巧是将两个表交叉连接在一起:
ID
这应该有效,因为迭代Python代码中的结果集的方式类似于交叉连接。在这种情况下,使用上面的查询,您只需要在整个结果集上迭代一次。