小知识:sum函数统计结果为null时返回值改为0COALESCE(SUM(字段),0) as 别名

1总结:我查资产的时候需要统计订单的各个币种的订单量,这里应该有两个条件,1用户相同,币种相同,然后再分组。这里的语句'o.type_id=w.type_id and o.user_id=w.user_id and o.status=8'是必须的。23//tp5Db类语句4Db::name('user_wallet w')->field('w.*,t.type_name,COALESCE(sum(o.anticipated_income),0)  as total_income')->join('product_type t','t.id=w.type_id','left')->join('product_order o','o.type_id=w.type_id and o.user_id=w.user_id and o.status=8','left')->where(['w.user_id'=>$id])->group('w.type_id')->select();5// COALESCE 判断一个值是否为null 如果是可以附加默认值67//原生语句8SELECT w.*,t.type_name,COALESCE(sum(o.anticipated_income),0) as total_income FROM ether_user_wallet w LEFT JOIN `ether_product_type` `t` ON `t`.`id`=`w`.`type_id` LEFT JOIN `ether_product_order` `o` ON `o`.`type_id`=w.type_id and o.user_id=w.user_id and o.status=8 WHERE `w`.`user_id` = '1' GROUP BY `w`.`type_id`2.两个字段判断其中一个不为''且不为null展示1#条件:我们需要一个用户账号的字段但是我们有两个phone和mail默认phone有值显示phone没有则显示mail 2#当phone为true时(非null,及非'')显示phone否则显示mail3if(u.phone,u.phone,u.mail) as phone3.更改数据库字符集1alter database virtual_currency character set utf8; 4.去掉小数点后面多余的010 + CAST(字段 AS CHAR) 别名5.查看一个数据库有多少张表?1SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES   WHERE table_schema = '数据库名' GROUP BY table_schema;6.`varchar(2)`代表什么?设置一个字段varchar(2)存储,可以存储且只能存储两个汉字,也可以且只能存储两个字母。

因为存储单位是字符(字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、汉字等等)。

但是存储数据实际大小肯定是按照字节计算的。