python MySQLdb迭代查询表

时间:2018-12-16 02:36:22

标签: python mysql mysql-python

我正在尝试使用Python和MySQLdb对照另一个表查询一个表。这是到目前为止我得到的:

db = MySQLdb.connect( host = 'localhost', user = 'user', passwd= 
'password', db = 'vacants')

cursor = db.cursor()

numrows = cursor.rowcount

query = "SELECT address, ((20903520) * acos (cos ( radians(38.67054) )* cos( 
radians( lat ) ) * cos( radians( `long` ) - radians(-90.22942) ) + sin ( 
radians(38.67054) ) * sin( radians( lat ) ))) AS distance FROM vacants HAVING 
distance < 100;"

cursor.execute(query)

我有一张桌子cfs,另一张桌子空着。我想查看cfs中的每一行,在100英尺内是否有空置属性。因此对于(弧度(38.67054)和弧度(-90.22942),我需要遍历cfs表,以便每个cfs纬度和经度替换这两个数字。(这只是我们使用的测试纬度和经度)

最后,我想(在.csv中)具有空置的属性地址,距服务请求的距离以及呼叫的类型(这是服务请求数据库中的两个独立字段)。像这样的东西,来自上面的查询:

enter image description here

以下是示例数据-要求服务坐标:

38.595767638008056,-90.2316138251402
38.57283495467307,-90.24649031378685
38.67497061776659,-90.28415976525395
38.67650431524285,-90.25623757427952
38.591971519414784,-90.27782710145746
38.61272746420862,-90.23292862245287
38.67312983860098,-90.23591869583113
38.625956494342674,-90.18853950906939
38.69044465638584,-90.24339061920696
38.67745024638241,-90.20657832034047

还有空缺:

38.67054,-90.22942
38.642956,-90.21466
38.671535,-90.27293
38.666367,-90.23749
38.65339,-90.23141
38.645996,-90.20334
38.60214,-90.224815
38.67265,-90.214134
38.665504,-90.274414
38.668354,-90.269966

1 个答案:

答案 0 :(得分:0)

这不是最终解决方案,因为问题中没有足够的信息(地址字段?和20903520?),但它可能会通过显示如何在两个表中进行迭代并从CFS表中替换lat,lon来帮助您走上正轨进入应用于空缺表的查询:

guava