我有以下sql查询:
SELECT town,latitude,longitude FROM coordinates
以下将返回例如
"California,10.02313,20.123213"
我正在使用查询结果在gmaps上放置标记。但是,如果我有10个加州标记,它们会堆积起来,因为坐标是相同的。
我想在lat和lng中添加一个(非常小的)随机数,所以标记会出现在加利福尼亚州的限制范围内,但它们不会堆积起来。
我如何添加,让我们说FLOOR(RAND() * 0.0030)+0.0040
到lat和lng,结果将是:
"1,California,10.02322,20.123254"
"2,California,10.02313,20.123213"
注意坐标的微小变化,但仍然在加利福尼亚的州限制范围内(变化非常小)
答案 0 :(得分:2)
SELECT
后面可以跟任意表达式,它们不必只是列名。所以你可以写:
SELECT town,
latitude + FLOOR(RAND() * 0.0030)+0.0040 AS latitude,
longitude + FLOOR(RAND() * 0.0030)+0.0040 AS longitude
答案 1 :(得分:0)
+0.004是不必要的,因为它没有随机化数据,它只是为它添加一个常数
SELECT town, FLOOR(RAND() * 0.0030) + latitude as latitude, FLOOR(RAND() * 0.0030) + longitude as longitude FROM coordinates
我还建议不要添加地板,因为它可能只是向列添加0(因为它将偏移量舍入到整数)而不是像
那样 SELECT town, (RAND() * 0.0030 + latitude) as latitude, (RAND() * 0.0030 + longitude) as longitude FROM coordinates