我想计算两点之间的距离。为此,对于一个表中的每个点,我必须计算与同一数据库中另一个表中所有其他点的距离。我使用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: Unread result found.
我尝试对游标使用buffer=true,但仍然存在相同的错误。 这样做是有效的还是其他更好的方式。在
这里可以使用的一个技巧是将两个表交叉连接在一起:
这应该是可行的,因为在Python代码中迭代结果集的方式类似于交叉连接。在这种情况下,使用上面的查询,您只需要在整个结果集上迭代一次。在
相关问题 更多 >
编程相关推荐