2012-07-10 34 views
7

Tôi đang cố gắng tạo một số bản ghi giả trong MySQL và cần phải tạo các giá trị chênh lệch vĩ độ và kinh độ ngẫu nhiên trong một phạm vi nhất định.Tạo vĩ độ và longitutde ngẫu nhiên trong MySQL

Ví dụ tôi cần phải tạo ra các vĩ độ mà là giữa 52,077090052913654 và 52,477040512464626

và kinh độ giữa -1,8840792500000134 và -0,9172823750000134

Tôi quen với việc tạo ra dãy số ngẫu nhiên sử dụng Rand Tầng nhưng điều đó sẽ chỉ sản xuất số nguyên. Bất kỳ ý tưởng về cách tôi có thể làm điều này?

Trả lời

9

Bạn có thể sử dụng RAND() để có được một giá trị ngẫu nhiên giữa hai giá trị như sau:


randVal = (RAND() * (maxVal - minVal)) + minVal


Với con số của bạn:

SELECT 
    (RAND() * (52.477040512464626 - 52.077090052913654)) + 52.077090052913654 AS randlatitude, 
    (RAND() * (-0.9172823750000134 - -1.8840792500000134)) + -1.8840792500000134 AS randlongitude 
+0

Rất cám ơn bạn giúp Zane, thật tuyệt. – BarfordSimon