我有一個名爲位置內有一個名爲位置表的舊數據庫。複雜的MySQL從舊錶加入到新的
此表有7個變量:id(int,index),approved(int),city(text),country(text),heading(double),lat(double),lng(double)。
我有一個名爲複雜性的新數據庫。 該數據庫中有一個名爲新表gsvraw
我需要將舊錶複製到新表,但是這是它得到棘手:
新的數據庫將會使用MySQL的空間索引等等我可以稍後在多邊形內進行搜索。在新的數據庫中,我想添加一個名爲location的新列,而不是lat,lng。
用於創建一個新的列的示例的語句:
ALTER TABLE gsvraw ADD location POINT NOT NULL;
CREATE SPATIAL INDEX location ON gsvraw (location);
這是一個示例的語句用於插入一個新值插入位置列:
INSERT INTO gsvraw (location) VALUES(GeomFromText('POINT(40 -100)'));
40和-100是lat和LNG。
任何想法?
我在麻省理工學院這裏浪費了三個不同的「專家」每個小時一個小時,而且幾乎沒有任何地方。
我正在運行的服務器正在導致主要問題,所以使用python和MySQLdb已經不存在了。
希望有人比我們聰明,可以幫助原始的sql語句。
我使用MAMP pro在Mac上運行Apache MySQL和PHP。這導致了一些麻煩,所以真正可行的唯一解決方案是直接的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);
}
?>
我最終編寫了一個腳本,但是你的代碼很有幫助,即使它需要被編輯並且單獨是不正確的。 –