【MySQL】拆分经纬度字段
数据结构:
表中一字段存储经度和纬度:
+---------------------------+
| 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】拆分经纬度字段的更多相关文章
- Mysql 计算地址经纬度距离实时位置
前言 最近在做项目时候,遇到一个这样子的需求, 点到卡包里面卡券使用使用,需要展示卡券使用附近门店, 思路 数据库地址表设计 通用的区域街道地址表tz_sys_area 字段名称 类型 备注 area ...
- 使用logstash读取MySQL数据传输到es,并且@timestamp字段采用MySQL中的字段时间--建议采用这个
MySQL中数据样式 ES中数据样式 input { jdbc { jdbc_connection_string => "jdbc:mysql://192.168.0.145:3306 ...
- Mysql hql字符串字段中是否包含某个字符串,用 find_in_set
有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被','分开,现在要取出具有某权限的所有成员列表. 创建表: 1 CREATE TABLE us ...
- MySQL 表与字段编码格式报错
MySQL 表与字段编码格式报错 一.数据库,表,字段编码格式都为latin1(iso-8859-1) .当数据保存到数据库后,中文显示乱码. 解决办法: 1.在访问数据库连接串中添加编码格式: &l ...
- paip.解决 数据库mysql增加列 字段很慢添加字段很慢
paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6 数据仅仅3w alter table xxx add column yyy int default ...
- MYSQL的分区字段,必须包含在主键字段内
MYSQL的分区字段,必须包含在主键字段内 MYSQL的分区字段,必须包含在主键字段内 在对表进行分区时,如果分区字段没有包含在主键字段内,如表A的主键为ID,分区字段为createtime ,按 ...
- mysql中判断字段为空
mysql中判断字段为null或者不为null 在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null select nulco ...
- MySQL根据某个字段查询重复的数据
select count(*) '个数',mobile '手机号',`name` '用户名' from users group by mobile having(count(*) > 1); = ...
- mysql添加一个字段(
mysql添加一个字段(在指定的一个字段后面) 举个栗子:alter table inquiry add error_code varchar(3) after add_time; 说明:alter ...
- 【mysql】在mysql中更新字段的部分值,更新某个字符串字段的部分内容
在mysql中更新字段的部分值,更新某个字符串字段的部分内容 sql语句如下: update goods set img = REPLACE(img,'http://ozwm3lwui.bkt.clo ...
随机推荐
- C语言-使用malloc导致的奔溃问题
在使用malloc.memset.free的过程中,出现了程序奔溃,大致现象如下. 程序的实现大致如下: #include <stdio.h> #include <stdlib.h& ...
- 剑指Offer-49.把字符串转换成整数(C++/Java)
题目: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的 ...
- C#.NET Framework RSA 公钥加密-私钥解密
C#.NET Framework RSA 公钥加密-私钥解密 加密解析: //假设私钥长度为1024, 1024/8-11=117. //如果明文的长度小于117,直接全加密,然后转base64.(d ...
- Vue学习:17.组件通信案例-记事本
通过上一节的学习,我们了解并掌握了组件通信的定义及一般使用.那么接下来,我们将之前练习过的案例使用组件化思想来实现一下吧. 实例:记事本(组件化) 实现功能 运用组件化思想,实现Vue学习:3.V标签 ...
- 牛客网在线编程-语法篇-基础语法——C 语言解题集
前言 牛客网在线编程-语法篇-基础语法--C 语言解题集. 点击下方超链接跳转至对应编程题目,文章包含解析及源码. 01-基础语法 简单输出 BC1-Hello Nowcoder BC2-小飞机 基本 ...
- Spring Boot 使用 拦截器 实现 token 验证
Spring Boot 使用 拦截器 实现 token 验证 整体思路:1.写一个工具类封装生成.校验和解析 token 的方法:2.在注册和登录时生成 token ,生成的 token 存入 red ...
- 随机二次元图片API第二弹
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 随机二次元图片API第二弹 日期:2018-3-4 阿珏 ...
- SQLite vs MySQL vs PostgreSQL对比总结
开发业务系统时,是绕不开RDBMS(关系型数据库)的.虽然现在诞生了各种NoSQL的数据库,RDBMS在业务系统中的严谨和优势依然无法取代. 近几年大大小小的项目中,常用的三种RDBMS(SQLite ...
- python重拾第五天-常用模块学习
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- hynitron ts 驱动分析
# hynitron ts 驱动分析 背景 在公司项目中搞LCD移植的时候,在TP功能上,有时候频繁操作屏幕时会导致i2c总线返回-2错误. 问题描述: 1.安卓桌面起来以后,点击屏幕有响应. 2.此 ...