【发布时间】:2014-10-13 14:06:35
【问题描述】:
我有一个包含 3 列“纬度”、“经度”、“状态”的 SQL 表。我想创建一个贯穿表中所有行的脚本,从纬度/经度的第一行开始,并删除所有其他小于 0.3 差异的纬度/经度行,然后首先更新“状态”列行为“已完成”。然后它将对第二行纬度/经度执行相同的操作,然后是第三行,依此类推,直到“状态”列中的所有行都“完成”。这是应该用于删除行的查询:
delete from create_concert_xml_job
where abs({latitude1} - latitude) <= 0.3 AND abs({longitude1} - longitude) <= 0.3;
{latitude1}和{longitude}来自与其他行进行比较的行。
谁能帮我解决这个问题?
更新:例如说这些是前 4 行的纬度/经度:
3.5/7.5
4.5/6.5
3.6/7.6
4.6/6.6
因此,当脚本运行第一行时,它应该删除从此查询返回的所有行:
从 create_concert_xml_job 中删除 abs(3.5 - latitude)
这将导致第 3 行被删除。然后它将运行第 2 行并使用查询:
从 create_concert_xml_job 中删除 abs(4.5 - latitude)
这将导致第 4 行被删除。
【问题讨论】:
-
那是什么
latitude1? -
如果您要为
{latitude1}使用大括号,为什么不为latitude使用大括号? -
为什么要在删除行后设置状态??
-
@HendryTanaka {latitude1} 和 {longitude1} 来自与其他行进行比较的行。它只是我上面查询的占位符。
-
@Fred-ii- {latitude1} 只是用于比较要删除的其他行的纬度的占位符。 'latitude' 将是要删除的纬度。