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