mysql细节整理

一、
在与其他表多表关联查询时,比如使用left join,left join 前面的表为主表,后面的表为子表。
子表为主表服务,子表条件跟在 on后面,关联条件也在on后面,举例:
a left join b on b.deleted=0 and a.id=b.aId

主表条件跟在where后面:比如:

a left join b on b.deleted=0 and a.id=b.aId
where a.deleted=0

二、在写sql时最好不要用某某字段“=null”,将等号替换为“is”,因为数据库有可能将“=null”中的null识别成null字符串

错误:a.deleted=null
	正确:a.deleted is null

三、if函数用法
if(前置条件,前置条件为true时运行这里,前置条件为fasle时运行这里)

四、时间查询时尽量都用DATE_FORMAT函数
DATE_FORMAT函数用法:

DATE_FORMAT(a.time,'%Y-%m-%d %H:%i:%s')

前面是时间入参,后面是时间格式:年月日时分秒

最重要的是写sql时候一定要仔细!!!
最近一个上百行的sql出了十几个bug,差点把我肝去世

五、case when用法
当需要对查询到的数据做一些内容转换或者处理时候可以用case when 或者if,情况多时用case when

select
case 
when a.deleted is ‘0’ then '未删除'
when a.deleted is ‘1’ then '已删除'
else '其他'
end as  deleted
form table as a

解释:这段代码相当于查询table,设置table别名为’a’,当‘deleted’是‘0’时deleted的值为‘未删除’,当deleted的值为‘1’时deleted的值为已删除,如果既不等于0又不等于1则deleted的值为‘其他’,并且将此段函数的值设置别名为deleted

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值