Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql spatial

作者:Haggard憔悴   发布日期:2026-01-26   浏览:70

-- 创建一个包含空间数据的表
CREATE TABLE geom_table (
    id INT NOT NULL PRIMARY KEY,
    name VARCHAR(30),
    location POINT
);

-- 插入一些带有空间数据的记录
INSERT INTO geom_table (id, name, location)
VALUES 
(1, 'Point A', ST_PointFromText('POINT(1 1)')),
(2, 'Point B', ST_PointFromText('POINT(2 2)')),
(3, 'Point C', ST_PointFromText('POINT(3 3)'));

-- 查询距离某个点最近的记录
SELECT name, ST_Distance_Sphere(location, ST_PointFromText('POINT(1.5 1.5)')) AS distance
FROM geom_table
ORDER BY distance
LIMIT 1;

-- 查询在某个范围内的所有记录
SELECT name
FROM geom_table
WHERE ST_Contains(ST_Buffer(ST_PointFromText('POINT(1.5 1.5)'), 1), location);

解释说明:

  1. 创建表:我们创建了一个名为 geom_table 的表,其中包含一个 POINT 类型的空间列 location
  2. 插入数据:我们插入了三个带有空间坐标的记录。
  3. 查询最近的点:使用 ST_Distance_Sphere 函数计算每个点与给定点之间的球面距离,并返回距离最近的记录。
  4. 查询范围内的点:使用 ST_ContainsST_Buffer 函数来查找在指定缓冲区范围内的所有点。

上一篇:mysqldump 导出表

下一篇:mysql deterministic

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站