mysql 从第几个字符串开始截取_MySQL复习—(二)进阶篇

3bb6956d7a57004bd5760c5718d4b5e1.png
  • SQL 函数一些函数
  • LEFT(str,len)
  • RIGHT(str,len)
  • LOCATE(substr,str)
  • SUBSTR(str FROM pos FOR len)

一、SQL 函数

LEFT(str,len)

LEFT:从左提取所要字符

用法:LEFT(字符串对应列名,从左数截取所需字符位置)

ringht:与用法与left一致

RIGHT(str,len)

用法:LEFT(所需的对应列名,从右数截取所需字符位置)

//从左截取第一位字符
SELECT LEFT(salary,1),salary FROM  dataanalyst_sql;

83841b63247e594990f09f122a3db69e.png
//从右截取第一位字符
SELECT right(salary,1),salary FROM  dataanalyst_sql;

e7b608bebf767232f46973bed14516a8.png
//从左截取4个字符
SELECT LEFT(salary,4),salary FROM  dataanalyst_sql;

470d1e574dec00872e62ceccaadc590c.png

c86b93f18e58c12bdffd51b6139dc6f1.png
只显示LEFT(salary,1)列
SELECT LEFT(salary,1) FROM  dataanalyst_sql;

9a83bbf203bcaf0806914ac85ecdf9ec.png

LOCATE(substr,str)

LOCATE:定位某一字符位置,返回对应字符位置(定位,查找字符所在在整字符串的位置)

用法:LOCATE('查找的字符串',对应列名,从字符串中第几个位置开始查找)

LOCATE('查找的字符串',对应列名) //不写默认第一位开始

ps:只能查找一次一个

//从salary列第三位置开始找'k'在该列的位置
SELECT LEFT(salary,1),LOCATE('k',salary,3), salary   
FROM
dataanalyst_sql;

2a8e9914d48616104413aaf227bec5b2.png
//默认从第一位开始找‘k’
SELECT LEFT(salary,1),LOCATE('k',salary), salary   
FROM
dataanalyst_sql;

3b9d2d6736c4f4f14f0047a52f17146d.png
//结合用:拆分列,截取薪资上限
SELECT LEFT(salary,LOCATE('k',salary)-1), salary   
FROM
dataanalyst_sql;

c8efb144a0065c3f1910435ca804a412.png
//方法一:提取工资下限。
SELECT RIGHT(salary,LOCATE('-',salary)-1), salary   
FROM
dataanalyst_sql;
k仍在

55c5a948460b0ca1361fab3a65abf9bc.png
方法二
利用两次left函数截取,
SELECT 
LEFT(salary,LOCATE('k',salary)-1),
LOCATE('-',salary),             
LENGTH(salary),                  //计算salary列字符长度
//LENGTH(salary)-LOCATE('-',salary)   等于右边长度(下限工资)
RIGHT(salary,LENGTH(salary)-LOCATE('-',salary)),  //截取下限工资,并把它当成一个新的列
//LEFT(salary,LOCATE('k',salary)-1)
//salary=RIGHT(salary,LENGTH(salary)-LOCATE('-',salary))
//LENGTH(salary)-LOCATE('-',salary)-1     /left需要截取的长度
LEFT(RIGHT(salary,LENGTH(salary)-LOCATE('-',salary)),LENGTH(salary)-LOCATE('-',salary)-1),
salary
FROM
dataanalyst_sql;
//新手分步骤写

e7b79eeb0091cdd3ca6aaff150737495.png

327ca63e86f46d557291a0eeaa71f890.png

SUBSTR()

  • SUBSTR(字符串,在字符哪个位置开始,需要截取长度)
  • SUBSTR(str,pos,len) 就是从pos开始的位置,截取len个字符(空白也算字符)
  • SBUSTR(字符串,在字符哪个位置开始)
  • SBUSTR(str,pos) 就是从pos开始的位置,一直截取到最后。
SELECT 
LEFT(salary,LOCATE('k',salary)-1),
LOCATE('-',salary),
LENGTH(salary),
SUBSTR(salary,'-',LENGTH(salary)-LENGTH(salary)),
salary
FROM
dataanalyst_sql;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值