首页 > 数据库技术 > 详细

MySQL空间地理位置字段: geometry

时间:2020-09-03 11:46:07      阅读:149      评论:0      收藏:0      [点我收藏+]

 

CREATE TABLE `zone_area` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `location` geometry DEFAULT NULL,
  `geohash` varchar(20) GENERATED ALWAYS AS (st_geohash(`location`,8)) VIRTUAL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT=;
ALTER TABLE zone_area ADD COLUMN `geohash` varchar(20) GENERATED ALWAYS AS (st_geohash(`location`,8)) VIRTUAL;

 

字段: 使用geometry类型存储空间点数据;

存储: SET location = geomfromtext(‘point(108.9498710632 34.2588125935)‘));

搜索: 查询方圆5公里数据? geohash字段是将二维通过geohash算法变成一维;

 

虚拟自增列 Generated Column是MySQL 5.7引入的新特性,Cenerated Column,就是数据库中这一列由其他列计算而得。
generated column always总是自动生成

 

 

FLOOR(X)表示向下取整,只返回值X的整数部分,小数部分舍弃。
CEILING(X) 表示向上取整,只返回值X的整数部分,小数部分舍弃。
#DECIMAL 四舍五入
SELECT CAST(‘123.456‘ AS DECIMAL) #123
SELECT CAST(‘123.456‘ AS DECIMAL(10,2)) #123.46
ROUND(X) -- 四舍五入
SELECT ROUND(‘123.456‘) #123
SELECT ROUND(‘123.456‘,2) #123.46

MySQL空间地理位置字段: geometry

原文:https://www.cnblogs.com/smileblogs/p/13606439.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!