mysql - 地理位置字符串sql中的变量

标签 mysql sql csv

我正在尝试在 mysql 数据库中进行一些地理定位。我已经使用一个简单的插入语句(如下所示)来实现它。

INSERT INTO location 
VALUES ("London", ST_GeometryFromText('Point(10.0000 10.0000)'));

我的问题是当我想插入所有城市时。我正在从包含 100.000 多个城市的 tsv 文件插入。但是,当我不想创建地理点并且无法插入值时,因为“point()”需要在其周围加上引号,并且它被视为字符串。 @col5 和 6 有纬度和经度,我已经测试过了。我如何将 @col5 @col6 中的值插入点对象/('string')

LOAD DATA LOCAL INFILE 'cities.txt'
INTO TABLE location
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
LINES TERMINATED BY '\n'
(@col1, @col2, @col3, @col4, @col5, @col6) 
SET city_name=@col2, geom=ST_GeometryFromText('point(@col5 @col6)');

最佳答案

只需使用 concat 即可:

SET city_name=@col2, geom=ST_GeometryFromText(CONCAT('point(', @col5,  @col6, ')'));

关于mysql - 地理位置字符串sql中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072183/

相关文章:

php - fetchAll 卡住了

javascript - jQuery:Ajax - 如何找到最后一个调用

sql - 为什么 where 子句中没有窗口函数?

列表中的 SQL 随机字符串

python - 为什么 pandas read_csv 发出此警告? (元素比较失败)

string - SQL 服务器 : escape punctuation in string

mysql - 需要有返回所有数据的 sql 查询,除了只有零的数据

mysql - SQL 优化最佳解释?

sql - sql server查询数据库中所有表的值

PHP 数组 : Extract from CSV