2014-11-14 2 views
0

나는 다음과 같은 SQL 쿼리가 있습니다수정 값은

SELECT town,latitude,longitude FROM coordinates 

다음은 예컨대

"California,10.02313,20.123213" 

내가 gmaps에 마커를 배치 할 쿼리 결과를 사용하고 반환합니다. 그러나 캘리포니아에 10 개의 마커가 있다면 좌표가 동일하기 때문에 쌓일 것입니다.

난 (아주 작은) 임의의 숫자를 lat와 lng에 추가하여 마커가 캘리포니아 한도 내에 표시되지만 쌓이지는 않을 것입니다.

캘리포니아의 상태 한도 내 (아주 작은 변화와)

"1,California,10.02322,20.123254" 
"2,California,10.02313,20.123213" 

공지 사항 좌표의 작은 변화,하지만 여전히 : 내가 추가 할 수있는 방법

는 결과가 될 수 있도록 위도와 LNG에 FLOOR(RAND() * 0.0030)+0.0040을 말할 수

+0

나는 같은 것을 할 또한 SQL에 행 번호를 추가 한 것을 보았지만 질문에 진술하지 않았습니까? –

+0

쿼리가 여러 행을 반환한다는 것을 보여 주기만하면됩니다. – Theodoros80

+0

@ConradFrix 행 번호가 원하는 결과에 OP가 원하는 것이 었는지 물어 보았습니다. 당신이 무엇을 언급하고 있는지 확실하지 않습니다. –

답변

2

SELECT 다음에 임의의 표현식이 올 수 있으며, 열 이름 일 필요는 없습니다. 그래서 당신은 쓸 수 있습니다 :

SELECT town, 
     latitude + FLOOR(RAND() * 0.0030)+0.0040 AS latitude, 
     longitude + FLOOR(RAND() * 0.0030)+0.0040 AS longitude 
+0

지금 테스트 할 것입니다 ... – Theodoros80

+0

'FLOOR (RAND() * 0.0030)'는 항상 0을 리턴합니까? –

+0

@ Invent-Animate 예. 대답은 정말로 더 일반적이며, 모든 표현식을 사용할 수 있습니다. 그가 원하는 것에 대한 올바른 공식이 직각인지 여부입니다. – Barmar

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