📜  mysql 如何存储 lat,lng - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.153000             🧑  作者: Mango

MySQL 如何存储 lat,lng - SQL

如果你需要在 MySQL 中存储地理坐标数据,例如纬度和经度(lat,lng),那么你可以使用 MySQL 的 POINT 数据类型。

POINT 数据类型

POINT 数据类型用于表示一个具有纬度和经度的点。该数据类型存储了一个二进制格式的坐标值,可以通过以下示例代码查看:

SELECT ST_AsText(PointFromWKB(POINT(31.22,121.48))) as location;

输出结果为:

location
POINT(31.22 121.48)

这里的 ST_AsText 函数将二进制坐标值转换为文本格式。

存储地理坐标

要在 MySQL 中存储地理坐标,你可以使用以下 SQL 语句创建一个表:

CREATE TABLE locations (
  id INT PRIMARY KEY,
  name VARCHAR(255),
  coordinates POINT
);

在这个示例表中,coordinates 列使用 POINT 数据类型存储地理坐标。

使用以下 SQL 语句向表中插入具有坐标的数据:

INSERT INTO locations (id, name, coordinates)
VALUES
  (1, '上海', POINT(31.22, 121.48)),
  (2, '纽约', POINT(40.71, -74.00)),
  (3, '东京', POINT(35.68, 139.77));

在上面的 SQL 语句中,POINT 关键字后面跟着要存储的纬度和经度值。

查询地理坐标

要查询存储在 MySQL 表中的地理坐标,你可以使用以下 SQL 语句:

SELECT id, name, ST_AsText(coordinates) as coordinates
FROM locations;

上面的查询语句使用了 ST_AsText 函数将 POINT 数据类型转换为文本格式输出。

输出结果为:

id | name  | coordinates
---+-------+----------------------------------
1  | 上海  | POINT(31.22 121.48)
2  | 纽约  | POINT(40.71 -74.00)
3  | 东京  | POINT(35.68 139.77)
总结

在 MySQL 中存储地理坐标可以使用 POINT 数据类型。使用 POINT 数据类型可以方便地存储和查询地理坐标,从而为地理位置相关的应用程序提供更好的性能和灵活性。