MySQL函数之字符串操作函数

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

字符串函数

参考:https://www.runoob.com/mysql/mysql-functions.html

ASCII

返回字符串的第一个字符的ASCII

SELECT ASCII(field) FROM Table;

CHAR_LENGTH

返回字段字符串的个数

SELECT CHAR_LENGTH("str") as str;

CHARACTER_LENGTH

返回字段字符串的个数

SELECT CHARACTER_LENGTH("str") as str;

CONCAT

将多个字符串进行组合,支持字段和字符串

SELECT CONCAT(field, str1, str2...) from Table;

CONCAT_WS

使用分隔符组合多个字符,分隔符为第一个参数,支持字段和字符串

SELECT CONCAT_WS('-', 'a', field) from Table;

FIELD

返回传入第一个参数字符串在后续给定参数中的位置

SELECT FIELD(str,   'pos1', 'pos2'...) as index;
SELECT FIELD(field, 'pos1', 'pos2'...) from Table;

FIND_IN_SET

找出第一个参数在后续所处字符串中的位置,第二个参数为查找集合,以逗号分隔的字符串表示a,b,c,d,e

相当于Python字符串查找函数find

SELECT FIND_IN_SET(str, "position");

INSERT

在字符串指定位置插入覆盖指定个数的新字符串

SELECT INSERT(source_str, start, end, dist_str);

比如替换某字符串的前三个字符为新的

SELECT INSERT('this is a test str', 1, 2, '*a*b*c')

结果将会是覆盖原字符串前两个字符,并且将第四个参数插入字符串

*a*b*cis is a test str

在字符串第五个位置开始插入字符,但不覆盖任何字符

SELECT INSERT('this is a test str', 5, 0, '*a*b*c')
this*a*b*c is a test str

LOCATE

查找在字符串中目标字符串出现的开始位置

SELECT LOCATE('dc','ab1231dcadas')
7

LEFT

返回字符串的前n个字符

SELECT LEFT(field, 2) from Table;
SELECT LEFT(str, 2);

LOWER

将字符串中所有的字母变为小写

SELECT LOWER(field) from Table;
SELECT LOWER(str);

LPAD

字符串左侧起点开始填充字符,并达到指定长度

SELECT LPAD(field, 10, '0') from Table;

LTRIM

去掉字符串左侧起点处的空格

SELECT LTRIM('  aaaaa');
aaaaa

MID

从字符串指定位置开始截取指定个数的字符

SELECT MID('aaabbbccc', 2, 5)
aabbb

POSITION

返回字符串中某字符的所处位置

SELECT POSITION(char in str);

REPEAT

重复字符串指定个数

SELECT REPEAT('str', 2);
strstr

REPLACE

将字符串中的指定内容替换为新的

SELECT REPLACE(source, char, replaced)
SELECT REPLACE('a*b*c*', '*', '-')
a-b-c-

REVERSE

将字符串逆置

SELECT REVERSE(str);

RIGHT

返回字符串从右开始的指定个数的字符

SELECT RIGHT('abcdef', 2);
ef

RPAD

字符串右侧起点开始填充字符,并达到指定长度

SELECT RPAD('abc', 5, '-');
abc--

RTRIM

从除字符串右侧删除空格

SELECT RTRIM(' AAAA ');
 AAAA

SPACE

返回指定个数的空格

SELECT SPACE(10);

STRCMP

比较两个字符串是否相同,相同返回0,第一个字符串大于第二个返回1,反之返回-1

SELECT STRCMP('aaa', 'aaa');
0

SUBSTR

从字符串指定位置开始截取指定长度的字符

SELECT SUBSTR('abcdef', 2, 3);
bcd

TRIM

去掉字符串开始和结尾处的空格

SELECT TRIM(' AAA ');
AAA

UPPER

字符串字符变大写

SELECT UPPER(str);

SUBSTRING_INDEX

SUBSTRING_INDEX(s, delimiter, number)

返回字符串s在第numberdelimiter后的子字符串

如果number是正数,从前往后数,反之,从后往前数指定number个数的delimiter

SELECT SUBSTRING_INDEX('a*das*123', '*', -1);
123

SELECT SUBSTRING_INDEX('a*das*123', '*', 2);
a*das
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李恩泽的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值