数据结构:

表中一字段存储经度和纬度:

+---------------------------+
| INSTALL_LOLA_NUM |
+---------------------------+
| 23.0345735213,69.01224234 |
| 23.0340313,69.01224234 |
| 93.03453,69.01224234 |
| 10.23683,69.01224234 |
| 43.0345123,69.01224234 |
+---------------------------+

查询时,将其拆分成两个字段,经度和纬度

SQL解决办法:

使用 INSTR + RIGHT + LEFT + LENGTH 函数组合

SELECT
COL, -- 原始字段
INSTR(COL, ',') AS IDX, -- 逗号下标
LEFT(COL, INSTR(COL, ',') - 1) AS LEFT_CUT, -- 左切部分
RIGHT(COL, LENGTH(COL) - INSTR(COL, ',')) AS RIGHT_CUT -- 右切部分
FROM TABLE

案例效果:

+---------------------------+-----+---------------+-------------+
| C | IDX | LEFT_CUT | RIGHT_CUT |
+---------------------------+-----+---------------+-------------+
| 23.0345735213,69.01224234 | 14 | 23.0345735213 | 69.01224234 |
| 23.0340313,69.01224234 | 11 | 23.0340313 | 69.01224234 |
| 93.03453,69.01224234 | 9 | 93.03453 | 69.01224234 |
| 10.23683,69.01224234 | 9 | 10.23683 | 69.01224234 |
| 43.0345123,69.01224234 | 11 | 43.0345123 | 69.01224234 |
| 6 | 0 | | 6 |
| 7 | 0 | | 7 |
| 8 | 0 | | 8 |
| 9 | 0 | | 9 |
| 10 | 0 | | 10 |
| 11 | 0 | | 11 |
| 12 | 0 | | 12 |
| 13 | 0 | | 13 |
| 14 | 0 | | 14 |
| 15 | 0 | | 15 |
| 16 | 0 | | 16 |
| 17 | 0 | | 17 |
| 18 | 0 | | 18 |
| 19 | 0 | | 19 |
| 20 | 0 | | 20 |
| 21 | 0 | | 21 |
| 22 | 0 | | 22 |
| 23 | 0 | | 23 |
| 24 | 0 | | 24 |
+---------------------------+-----+---------------+-------------+

发现新的问题,右切会全切,在加一个判断,左切的判断

SELECT
C,
INSTR(C, ',') AS IDX,
LEFT(C, INSTR(C, ',') - 1) AS LEFT_CUT,
IF(LEFT(C, INSTR(C, ',') - 1) , RIGHT(C, LENGTH(C) - INSTR(C, ',')), '') AS RIGHT_CUT
FROM A

效果:

+---------------------------+-----+---------------+-------------+
| C | IDX | LEFT_CUT | RIGHT_CUT |
+---------------------------+-----+---------------+-------------+
| 23.0345735213,69.01224234 | 14 | 23.0345735213 | 69.01224234 |
| 23.0340313,69.01224234 | 11 | 23.0340313 | 69.01224234 |
| 93.03453,69.01224234 | 9 | 93.03453 | 69.01224234 |
| 10.23683,69.01224234 | 9 | 10.23683 | 69.01224234 |
| 43.0345123,69.01224234 | 11 | 43.0345123 | 69.01224234 |
| 6 | 0 | | |
| 7 | 0 | | |
| 8 | 0 | | |
| 9 | 0 | | |
| 10 | 0 | | |
| 11 | 0 | | |
| 12 | 0 | | |
| 13 | 0 | | |
| 14 | 0 | | |
| 15 | 0 | | |
| 16 | 0 | | |
| 17 | 0 | | |
| 18 | 0 | | |
| 19 | 0 | | |
| 20 | 0 | | |
| 21 | 0 | | |
| 22 | 0 | | |
| 23 | 0 | | |
| 24 | 0 | | |
+---------------------------+-----+---------------+-------------+

解决方案参考此博客:

https://www.cnblogs.com/liyue-sqsf/p/9077249.html

同样,使用LEFT + RIGHT 函数 可以实现 电话号脱敏

set @phone = 13566778899;

select case
when length(@phone) = 11 then
concat(left(@phone,3),'****',right(@phone,4))
else @phone end as phone;

【MySQL】拆分经纬度字段的更多相关文章

  1. Mysql 计算地址经纬度距离实时位置

    前言 最近在做项目时候,遇到一个这样子的需求, 点到卡包里面卡券使用使用,需要展示卡券使用附近门店, 思路 数据库地址表设计 通用的区域街道地址表tz_sys_area 字段名称 类型 备注 area ...

  2. 使用logstash读取MySQL数据传输到es,并且@timestamp字段采用MySQL中的字段时间--建议采用这个

    MySQL中数据样式 ES中数据样式 input { jdbc { jdbc_connection_string => "jdbc:mysql://192.168.0.145:3306 ...

  3. Mysql hql字符串字段中是否包含某个字符串,用 find_in_set

    有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被','分开,现在要取出具有某权限的所有成员列表. 创建表: 1 CREATE TABLE us ...

  4. MySQL 表与字段编码格式报错

    MySQL 表与字段编码格式报错 一.数据库,表,字段编码格式都为latin1(iso-8859-1) .当数据保存到数据库后,中文显示乱码. 解决办法: 1.在访问数据库连接串中添加编码格式: &l ...

  5. paip.解决 数据库mysql增加列 字段很慢添加字段很慢

    paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6    数据仅仅3w alter table xxx add column yyy int default ...

  6. MYSQL的分区字段,必须包含在主键字段内

    MYSQL的分区字段,必须包含在主键字段内   MYSQL的分区字段,必须包含在主键字段内 在对表进行分区时,如果分区字段没有包含在主键字段内,如表A的主键为ID,分区字段为createtime ,按 ...

  7. mysql中判断字段为空

    mysql中判断字段为null或者不为null   在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null   select nulco ...

  8. MySQL根据某个字段查询重复的数据

    select count(*) '个数',mobile '手机号',`name` '用户名' from users group by mobile having(count(*) > 1); = ...

  9. mysql添加一个字段(

    mysql添加一个字段(在指定的一个字段后面) 举个栗子:alter table inquiry add error_code varchar(3) after add_time; 说明:alter ...

  10. 【mysql】在mysql中更新字段的部分值,更新某个字符串字段的部分内容

    在mysql中更新字段的部分值,更新某个字符串字段的部分内容 sql语句如下: update goods set img = REPLACE(img,'http://ozwm3lwui.bkt.clo ...

随机推荐

  1. C语言-使用malloc导致的奔溃问题

    在使用malloc.memset.free的过程中,出现了程序奔溃,大致现象如下. 程序的实现大致如下: #include <stdio.h> #include <stdlib.h& ...

  2. 剑指Offer-49.把字符串转换成整数(C++/Java)

    题目: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的 ...

  3. C#.NET Framework RSA 公钥加密-私钥解密

    C#.NET Framework RSA 公钥加密-私钥解密 加密解析: //假设私钥长度为1024, 1024/8-11=117. //如果明文的长度小于117,直接全加密,然后转base64.(d ...

  4. Vue学习:17.组件通信案例-记事本

    通过上一节的学习,我们了解并掌握了组件通信的定义及一般使用.那么接下来,我们将之前练习过的案例使用组件化思想来实现一下吧. 实例:记事本(组件化) 实现功能 运用组件化思想,实现Vue学习:3.V标签 ...

  5. 牛客网在线编程-语法篇-基础语法——C 语言解题集

    前言 牛客网在线编程-语法篇-基础语法--C 语言解题集. 点击下方超链接跳转至对应编程题目,文章包含解析及源码. 01-基础语法 简单输出 BC1-Hello Nowcoder BC2-小飞机 基本 ...

  6. Spring Boot 使用 拦截器 实现 token 验证

    Spring Boot 使用 拦截器 实现 token 验证 整体思路:1.写一个工具类封装生成.校验和解析 token 的方法:2.在注册和登录时生成 token ,生成的 token 存入 red ...

  7. 随机二次元图片API第二弹

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 随机二次元图片API第二弹 日期:2018-3-4 阿珏 ...

  8. SQLite vs MySQL vs PostgreSQL对比总结

    开发业务系统时,是绕不开RDBMS(关系型数据库)的.虽然现在诞生了各种NoSQL的数据库,RDBMS在业务系统中的严谨和优势依然无法取代. 近几年大大小小的项目中,常用的三种RDBMS(SQLite ...

  9. python重拾第五天-常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  10. hynitron ts 驱动分析

    # hynitron ts 驱动分析 背景 在公司项目中搞LCD移植的时候,在TP功能上,有时候频繁操作屏幕时会导致i2c总线返回-2错误. 问题描述: 1.安卓桌面起来以后,点击屏幕有响应. 2.此 ...