吃一堑长一智(sql篇)

sql运算-值为null时

问题:当运算时,如果有任意一个值为null,那么返回的结果就为null
解决办法:使用mybatis时,xml在给实体类赋值的时候可以使用IFNULL对null进行处理,赋值为0
语法:IFNULL(expression, alt_value) 如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。

扩展:ISNULL(expression, alt_value) 如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。

sql-左外连接

语法:SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;
含义:返回table1的所有字段,table2的字段如果在table1中没有匹配则为null;ON后面为table1和table2的连接条件
注意:需要小表驱动大表(小数据量时不易发现,数据量大了就会出现慢SQL)

添加唯一索引

语法:ALTER TABLE table_name ADD UNIQUE (列名)
含义:为table_name添加一个索引,字段为列名
tips:可以使用多个字段列名,

MyBatis自动操作

问题:当前端传0,或进入xml时传值有0时,mybatis会将0当做空字符串进行比较。
导致:< if >标签判断空指针出现混乱。
解决:当有0时只判断非null即可。

GROUP BY操作需慎用

问题:GROUP BY分组操作对数据的去重等操作时很方便,但是!这个操作去掉的可能是你想要的数据之一。
导致:最终SQL运行出来的结果和你想要的结果不一样。
解决:提高分组的精确度(使用多个分组条件)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值