mysql - 插入到 lat/lng 到 POINT 列的选择中? 40k 行

标签 mysql

我有一个名为 lookup 的表,其中包含 zip、city、state、latitude、longitude 列(大约 40k 行)。我想要做的是将数据复制到一个名为 lookup2 的新表中,但是在这个表中没有纬度和经度列,我有一个名为 position 的列要点。

这当然是无效的,但你应该明白我在这里想要实现的目标:

INSERT INTO lookup2 (zip, city, state, position)
SELECT zip, city, state, PointFromText(POINT(longitude latitude)) FROM lookup;

对于 INSERT INTO SELECT 来说,这样的事情可能吗?我怎样才能将这个查找表“转换”为另一个表的新格式?

最佳答案

想通了 - 除了使用 CONCAT 之外,可能还有另一种方法可以做到这一点,但这对我来说很有用,并且在新表上使用 ST_X(position) 和 ST_Y(position) 会返回正确的 lng/lat每个 zip 的值或我正在使用的任何查找。

INSERT INTO lookup2 (zip, city, state, position)
SELECT zip, city, state, PointFromText(CONCAT('POINT (', longitude, ' ', latitude, ')')) as position FROM lookup

关于mysql - 插入到 lat/lng 到 POINT 列的选择中? 40k 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944697/

相关文章:

MySQL 中的 Java 属性文件

php - 来自 SQL 正确 sql 查询的 IP 会计显示

mysql - curdate() 的时间?

mysql - SQL:分组平均-if/case SELECT 语句

mysql - 我的游标程序不起作用

mysql load data infile auto_increment 倍增

mysql - 具有多个 WHERE 子句的 SQL Like 语句

java - 使用数据库创建新对象

Mysql加入不同的值

mysql准备语句我应该使用哪个语句