数据结构:

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

+---------------------------+
| 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. 震惊!docker镜像还有这些知识你都知道吗

    震惊!docker镜像还有这些知识你都知道吗? 镜像搜索 语法 [root@hmm docker-hello]# docker search -h Flag shorthand -h has been ...

  2. c# webApi返回Excel数据流 || 使用Excel数据流的方式下载Excel

    背景: 在前端无法生成特殊的excel表格,或操作复杂的时候会通过后台进行生成excel.但是服务器的资源也非常宝贵,所以通过数据流的方式就可以实现:不在服务器存储的情况下,使前端成功下载excel文 ...

  3. vue-cli 单文件组件 工具安装

    https://cli.vuejs.org/zh/ 在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) ...

  4. kali linux主题美化

    Kali 主题美化 先放张安装了主题的图片: 执行下面命令下载主题文件: git clone https://github.com/daniruiz/flat-remix-gtk.git git cl ...

  5. java 中 pop 和 peek 方法区别

    相同点:都返回栈顶的值. 不同点:peek 不改变栈的值(不删除栈顶的值),pop会把栈顶的值删除. 下面通过代码展现 /* * 文 件 名: TestPeekAndPopDiff.java */ i ...

  6. JAVA发送邮件报错: 535 Error: authentication failed, system busy。

    解决方法: 1.设置 -> 微信绑定 -> 开启安全登录 -> 生成新密码 2.使用生成的新密码替换邮箱登录密

  7. 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

    Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的.而 Mybatis 在查询关联对象或关联集合 ...

  8. 探索Semantic Kernel内置插件:深入了解ConversationSummaryPlugin的应用

    前言 经过前几章的学习我们已经熟悉了Semantic Kernel 插件的概念,以及基于Prompts构造的Semantic Plugins和基于本地方法构建的Native Plugins.本章我们来 ...

  9. MYSQL-check管理

    mysql这个东西对于管理员并不友好,看起来还没有成品.就拿亲儿子workbeanch来说吧,功能也不是很齐全,速度也一般般,否则sqlyog之类的早没有什么活路了. 社区版的支持非常薄弱(商业版不太 ...

  10. Python使用Matplotlib画以日期为X轴的图

    Python使用Matplotlib画以日期为X轴的图 步骤: 用pd把字符串格式的日期转成date格式. 使用 AutoDateLocator 设置x轴的属性. 1 from matplotlib ...