文章目录

  • 拼接
  • 有分隔符 concat_ws(separator, s1, s2, ... )
  • 无分隔符 concat(s1, s2, ...)
  • 截取
  • substring(str, pos) 从pos位置开始截取
  • substring(str, pos, length)从pos位置开始截取length长度的字符
  • left|right(str, length) 从左|右截取
  • substring_index(str,delim,n) 按关键字截取字符串
  • n > 0 从左开始定位关键字,截取0到定位之前的字符串
  • n < 0 从右开始定位关键字,截取定位之后的所有字符串
  • n = 0
  • 转换类型
  • cast(segment_value as type)
  • convert(segment_value , type)
  • type取值
  • 转换大小写
  • lower(str | column_name) 小写
  • upper(str | column_name) 大写


拼接

有分隔符 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

id

subId

00e54ee200a54eacb82b6b2cd08f57e2

00

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

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

id

subId

00e54ee200a54eacb82b6b2cd08f57e2

2

n = 0

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

id

subId

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_user

lowers

guest

GUEST