MySQL字符串常用函数使用方式

一:日期加减天数,Date比较

1:日期加减操作

select date_add(now(), interval 1 day); - 加1天
select date_add(now(), interval 1 hour); -加1小时
select date_add(now(), interval 1 minute); - 加1分钟
select date_add(now(), interval 1 second); -加1秒
select date_add(now(), interval 1 microsecond);-加1毫秒
select date_add(now(), interval 1 week);-加1周
select date_add(now(), interval 1 month);-加1月
select date_add(now(), interval 1 quarter);-加1季
select date_add(now(), interval 1 year);-加1年

#实际使用  5年前,5年后
UPDATE supplier SET create_time = DATE_ADD( create_time, INTERVAL -5 YEAR ) ; 
UPDATE supplier SET create_time = DATE_ADD( create_time, INTERVAL 5 YEAR ) ;

#日期比较    一天后的时间相等操作
select s.* from supplier s,bank b
where s.create_time = DATE_ADD(b.RecordDate, INTERVAL 1 DAY)

二:字符串截取操作

1、字符串拆分: SUBSTRING_INDEX(str, delim, count)

  1. 参数解说
参数名解释
str需要拆分的字符串
delim分隔符,通过某字符进行拆分
count当 count 为正数,取第 n 个分隔符之前的所有字符; 当 count 为负数,取倒数第 n 个分隔符之后的所有字符。

2. 举例 以“:”逗号为分隔符之前的所有字符。

select SUBSTRING_INDEX('刘晓宇:13187211622',':',1)        提取姓名
SELECT SUBSTRING_INDEX('刘晓宇:13187211622',':',-1)        提取手机号

#把名字抽出来放到联系人字段中
UPDATE supplier SET contact_name = SUBSTRING_INDEX( '刘晓宇:13187211622',':',1 ) ;
#把手机号码抽出来放到手机号字段中
UPDATE supplier SET mobile_phone = SUBSTRING_INDEX( '刘晓宇:13187211622',':',-1 ) ;

三:替换 REPLACE

参数名解释
field_name需要替换的字符串
string_to_find目标字符
string_to_replace替换字符串,当 string_to_find 找到后就用 string_to_replace 替换成新的 field_name 字符串。

1、实例 

#常用的数据库替换 标点符号
UPDATE market_info SET specifi=REPLACE( specifi, ' ; ', ';' ); 
UPDATE market_info SET specifi=REPLACE( specifi, ' ;', ';' ); 
#常用的数据库替换 文字
UPDATE market_info SET remark=REPLACE( remark, '简介:', '备注:' ); 

四:字符串长度:LENGTH( str )

1、参数解说

参数名解释
str需要计算长度的字符串

2、 举例 

(1)获取 ‘中华人民共和国万岁’ 字符串的长度

#中文和英文会发生很奇妙的结果,试试

SELECT LENGTH('中华人民共和国万岁') ;

SELECT LENGTH('we live in china') ;

五:多个查询列结果合并:CONCAT(str1,str2,…)

1、参数解说

mysql CONCAT() 函数用于将多个字符串连接成一个字符串
 

语法
             CONCAT(str1,str2,…)

返回结果

  • 返回结果为连接参数产生的字符串。

  • 如有任何一个参数为NULL ,则返回值为 NULL。

2、 举例

# 查询一个固定值
SELECT CONCAT('a','b','c');

#具体查询表结构
SELECT CONCAT(IFNULL(m.name,''),' ',IFNULL(m.price,'')) FROM  market_price m LIMIT 100 ;

六:查询固定的数据类型,字典类型转换处理 CASE WHEN THEN ELSE END

1、参数解说

case...when...then...else...end,是在from前面,可以改变记录中某字段的值,不能决定是否显示该记录

case...when...then...else...end,可用于对同一记录的多个字段求和,带分支判断。

2、实际应用

SELECT cp.name, cp.unit, cp.price
	, CASE 
		WHEN cp.source_type = 1 THEN '主材'
		ELSE '材料'
	END AS source_type
FROM collect_price cp
LIMIT 100

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值