zoukankan      html  css  js  c++  java
  • MySQL空间地理位置字段: geometry

    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

  • 相关阅读:
    个人冲刺8
    个人冲刺7
    个人冲刺6
    个人冲刺5
    个人冲刺4
    个人冲刺阶段3
    个人冲刺阶段2
    课下作业1-扩展阅读
    随手快递app开发的第四天
    随手快递app开发的第三天
  • 原文地址:https://www.cnblogs.com/smileblogs/p/13606439.html
Copyright © 2011-2022 走看看