第五章 5 mysql常用函数,字符串函数-最常用的mysql函数

concat(s1,s2,s3)   将字符串s1s2s3 连接到一块;

注意:concat其中一个为null,连接的结果就是为null;

例如:

SELECT * from t_km_doc_edit_pus p where p.KNWLG_NM = CONCAT('知','识','ceshi') ;
等于 SELECT * from t_km_doc_edit_pus p where p.KNWLG_NM = '知识ceshi';

insert(str,x,y,str2) 将字符串str从x开始的 y个字符 替换为 str2; 【起始值是用1开始的】

例如:将knwlg_nm 的 ‘知识ceshi'  的 ’ce'  更新为  ‘测’ 汉字;

语句:update t_km_doc_edit_pus p set p.KNWLG_NM = INSERT(p.KNWLG_NM,3,2,'测') where p.KNWLG_ID ='1901031136500100001';

lower(str)    upper(str)  把字符串全部转为大写 或者 小写

例如:执行前 knwlg_nm 为‘ceshiCESHI’;

执行语句后:update t_km_doc_edit_pus p set p.KNWLG_NM = LOWER(p.KNWLG_NM) where p.KNWLG_ID ='1901031136500100001';
 upper(str) 同理;

 

left(str,x)    right(str,x)   分别返回字符串最左边的x个字符串,和最右边的x个字符;如果第二个参数x为NULL,那么不返回任何字符串;

例如:一个表中只有账号信息,却没有地市信息;想统计每个地市有多少知识时,可以 根据账号的前缀进行统计;例如:gx1000;gx2000 等账号都归属于广西;所以可以用于这种类型的场景;

语句:SELECT COUNT(1),qianzhui from 
(SELECT LEFT(OP_PRSN_ID,2) qianzhui from t_km_doc_edit_pus) t1 GROUP BY qianzhui;  

先将 left 截取的结果 作为临时表,然后对临时表进行 分组统计;

lpad(str,n,pad) 和 rpad(str,n,pad)  用字符串pad对str最右边 和 最左边进行填充,直到长度为n个字符长度

例如:对knwlg_nm 为‘知识’的 用‘我真棒’填充 左侧 至30个字符长;

语句:UPDATE t_km_doc_edit_pus p set p.KNWLG_NM = LPAD(p.KNWLG_NM,30,'我真棒') where p.KNWLG_ID ='1901031136500100001';

 

LTRIM(STR) RTRIM(STR)  去掉字符串str左侧 和 右侧的空格;

例如:将knwlg_nm 右边增加三个空格;

使用查询语句查询:SELECT * from t_km_doc_edit_pus p where p.knwlg_nm = RTRIM('知识   ') union all
SELECT * from t_km_doc_edit_pus p where p.knwlg_nm = '知识   ' union all
SELECT * from t_km_doc_edit_pus p where p.knwlg_nm = '知识'

其实会发现,knwlg_nm 虽然后面有空格,但是 查询时,条件加不加空格 都可以查询出来;可能时mysql 入参之前自己trim了

 

REPEAT(str,x) 函数:返回str重复x次的结果

例如:SELECT REPEAT('知识',6) ;


SELECT * from t_km_doc_edit_pus p where p.knwlg_nm = REPEAT('知识',6);

 

 

replace(str,a,b)  用字符串b替换字符串str中所有出现的字符串a

例如 将knwlg_nm 中的 abc 全部替换为 ‘哈哈哈’;

替换前:

语句:UPDATE t_km_doc_edit_pus p set p.KNWLG_NM = REPLACE(p.KNWLG_NM,'abc','哈哈哈') where p.KNWLG_ID ='1901031136500100001';

 

strcmp(s1,s2) 比较字符串s1 和 s2 的ascii码值的大小;【如果s1比s2 小返回-1,如果相等返回0,如果s1大于s2 返回1】

例如:SELECT STRCMP('a','b'),STRCMP('b','b'),STRCMP('b','a');

trim(str)  去掉字符串str的前后的空格;

例如:SELECT trim('   a  '),'         a     ';

效果:

substring(str,x,y)  截取字符串str从x位置开始的y位字符;需要注意的是x的值是从1开始的;

例如:SELECT SUBSTR('abcdefg',0, 2) union all
SELECT SUBSTR('abcdefg',1, 2) 

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值