2011-02-18 1 views
0

이름이 지정된 위치에 테이블이있는 이전 위치의 데이터베이스가 있습니다.복잡한 MySQL에서 이전 테이블을 새로운 테이블로 결합

이 테이블에는 id (int, index), approved (int), city (text), country (text), heading (double), lat (double), lng (double)의 7 가지 변수가 있습니다.

나는 complexity라는 새로운 데이터베이스를 가지고 있습니다.

나는 새 테이블로 이전 테이블을 복사해야

는 그러나이 그것을 얻을 수있는 곳입니다 gsvraw 데이터베이스라는 이름의 새 테이블을 가지고 까다로운 : 새로운 데이터베이스는 그래서 MySQL을의 공간 색인을 사용하려고

나중에 폴리곤 내에서 검색 할 수 있습니다. 새 데이터베이스에서는 lat, lng 대신 location이라는 새 열을 추가하려고합니다.

새로운 열 생성하는 예 문 :

INSERT INTO gsvraw (location) VALUES(GeomFromText('POINT(40 -100)')); 

40 -100 위도하고 것이다 :이 위치 항목에 새로운 값을 삽입하는 일례 문이다

ALTER TABLE gsvraw ADD location POINT NOT NULL; 
CREATE SPATIAL INDEX location ON gsvraw (location); 

을 lng.

아이디어가 있으십니까?

나는 MIT에서 3 명의 다른 "전문가"를 각각 1 시간 씩 낭비했고 문자 그대로 아무데도 가지 않았다.

내가 실행중인 서버가 파이썬과 MySQLdb를 사용하는 데 큰 문제를 일으키고 있습니다.

누군가가 우리보다 똑똑해 원시 SQL 문을 도울 수 있기를 바랍니다.

저는 MAMP 전문가를 사용하여 Apache MySQL과 PHP가 설치된 Mac에서이 프로그램을 실행합니다. 이것은 몇 가지 문제를 일으키기 때문에 현재로서는 유일하게 작동 할 수있는 솔루션은 바로 PHP와 SQL입니다. 아이디어가 있으십니까?

솔루션 :

<?php 
$con = mysql_pconnect("localhost","username","password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("database1", $con); 


$result = mysql_query("SELECT * FROM database1 WHERE ") 
or die(mysql_error()); 

$con2 = mysql_pconnect("localhost","username","password"); 
if (!$con2) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("complexity", $con2); 

while($row = mysql_fetch_array($result)) { 

    mysql_query("INSERT INTO table1 (id, approved, city, country, heading, location) VALUES ('".$row['id']."', '".$row['approved']."', '".$row['city']."', '".$row['country']."', '".$row['heading']."', PointFromText('POINT(".$row['lng']." ".$row['lat'].")'))", $con2); 

} 
?> 

답변

0

당신이 PointFromText 기능을 시도 해 봤나?

set location = PointFromText(CONCAT('POINT(',latitude,' ',longitude,')')); 
+0

스크립트 작성이 끝났지 만 코드를 편집해야하고 혼자가 잘못되었지만 코드가 도움이되었습니다. –