mysql 字符串操作(持续更新中)

拼接

有分隔符 concat_ws(separator, s1, s2, … )

concat_ws(',', 'hello', 'world', 'u')

结果为:hello,world,u

无分隔符 concat(s1, s2, …)

concat('h1', 'h2', 'u')

结果为:h1h2u

截取

substring(str, pos) 从pos位置开始截取

select substring(name, 10) as alias from tab;

从第10位开始截取name字段内容

substring(str, pos, length)从pos位置开始截取length长度的字符

select substring(name, 10, 100) as alias from tab; 

从name字段内容截取第10到100位字符

left|right(str, length) 从左|右截取

select left(name, 10) as alias from tab;
select right(name, 10) as alias from tab;

left:从左开始截取10位
right:从右边开始截取10位

substring_index(str,delim,n) 按关键字截取字符串

(被截取字段,关键字,关键字出现的次数)
n>0,则从开始截取第n个关键字delim之前的所有字符
n<0,则从右边截取第n个关键字delim之后的所有字符
若n=0,则返回空
若关键字不存在,则返回整个字符串

n > 0 从左开始定位关键字,截取0到定位之前的字符串

SELECT id, SUBSTRING_INDEX(id, 'e', 1) AS subId FROM t_result
idsubId
00e54ee200a54eacb82b6b2cd08f57e200

n < 0 从右开始定位关键字,截取定位之后的所有字符串

SELECT id, SUBSTRING_INDEX(id, 'e', -1) AS subId FROM t_result
idsubId
00e54ee200a54eacb82b6b2cd08f57e22

n = 0

SELECT id, SUBSTRING_INDEX(id, 'e', 0) AS subId FROM t_result
idsubId
00e54ee200a54eacb82b6b2cd08f57e2

转换类型

cast(segment_value as type)

SELECT CAST('123' AS SIGNED) // 结果为123
SELECT CAST('2019-10-15' AS CHAR(4)) // 结果为2019

convert(segment_value , type)

SELECT CONVERT('2019-10-15', DATETIME) 
// 结果为2019-10-15 00:00:00

type取值

类型如下:

  • CHAR[(N)] 字符型
  • DATE 日期型,格式为 ‘YYYY-MM-DD’
  • DATETIME 日期时间型,格式为 ‘YYYY-MM-DD HH:MM:SS’
  • DECIMAL float型,或者DECIMAL(m,n),其中m为精度,n小数位数
  • SIGNED int
  • TIME 时间型
  • BINARY 二进制,同带binary前缀的效果
  • UNSIGNED 无符号整数

转换大小写

lower(str | column_name) 小写

select lower('IseeU'); //结果为iseeu

upper(str | column_name) 大写

select update_user, upper(update_user) as lowers from t_modify_log LIMIT 1;
update_userlowers
guestGUEST
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值