MySQL常见问题(不定时更新)

MySQL常见问题(不定时更新)

 

问题1:将多个select查询结果合并成一个结果

描述:多个select查询,每个select查询不同列,结果列的数量不相同,列的类型不相同。将所有select查询结果,合并成一个select结果返回。即,多个select查询结果列合并展示。无论多个select查询是否有关联。

解决方法:


select

t1.person_id, t2.goods_name,

t2.goods_id, t2.goods_name,t2.money

from(

       (select person_id, person_name from person) as t1,

       (select goods_id, goods_name,money from goods) as t2

);

结果:

 

 

问题2:字段判断空返回0。

描述:查询字段如果是null,返回其他字符代替。

解决方法:


select

goods_id,goods_name,IF(money is null,0,money)

from goods;

 

 

问题3:将某个字段截取固定长度,或在其左侧或右侧补充至固定长度。

描述:需要将字段补充至固定长度

解决方法: 函数LPAD(str,len,padstr):左侧填充,函数RPAD(str,len,padstr):右侧填充


select

LPAD(person_id,6,0),RPAD(person_id,6,0),

LPAD(person_name,1,0),RPAD(person_name,1,0)

from person;

 

 

问题4:时间与字符串之间相互转换

解决方法:
 

1.时间转字符串

DATE_FORMAT(日期,格式字符串)

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

2.字符串转时间

STR_TO_DATE(字符串,日志格式)

SELECT STR_TO_DATE('2019-01-20 16:01:45', '%Y-%m-%d %H:%i:%s');

3.时间转时间戳

select unix_timestamp(now());

4.字符串转时间戳

select unix_timestamp('2019-01-20'); 

5.时间戳转字符串

select from_unixtime(1451997924,'%Y-%d');

附日期格式如下:

%M 月名字(January……December) 

%W 星期名字(Sunday……Saturday) 

%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) 

%Y 年, 数字, 4 位 

%y 年, 数字, 2 位 

%a 缩写的星期名字(Sun……Sat) 

%d 月份中的天数, 数字(00……31) 

%e 月份中的天数, 数字(0……31) 

%m 月, 数字(01……12) 

%c 月, 数字(1……12) 

%b 缩写的月份名字(Jan……Dec) 

%j 一年中的天数(001……366) 

%H 小时(00……23) 

%k 小时(0……23) 

%h 小时(01……12) 

%I 小时(01……12) 

%l 小时(1……12) 

%i 分钟, 数字(00……59) 

%r 时间,12 小时(hh:mm:ss [AP]M) 

%T 时间,24 小时(hh:mm:ss) 

%S 秒(00……59) 

%s 秒(00……59) 

%p AM或PM 

%w 一个星期中的天数(0=Sunday ……6=Saturday ) 

%U 星期(0……52), 这里星期天是星期的第一天 

%u 星期(0……52), 这里星期一是星期的第一

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值