mysql 相关语法

mysql

记录一些mysql语法

  1. sum()求和函数,表达式可以是一个数值字段或公式
// 字段 select sum(aa) as "new field" from [表名]; // 公式: + - * / select sum(aa * 0.1) as "new field" from [表名];
  1. in 常用于 where 表达式中,其作用就是查询某范围内的数据
// 查询某范围内的数据 select * from [table] where [field] in(value, value); // 查询某范围外的数据 select * from [table] where [field] not in(value, value);
  1. 向表中添加字段
// 单个字段 ALTER table channel_test add nickname varchar(100) DEFAULT '' COMMENT '别名'; // 同时添加多个字段 ALTER TABLE channel_test ADD COLUMN `is_update` tinyint(1) DEFAULT '0' COMMENT '是否更新, 1:是, 0: 否', ADD COLUMN `c_before` varchar(512) DEFAULT '' COMMENT '旧的网站地址';
  1. group by 进行分组
// 根据多字段分组 select code, name, day from tableName where day >="2019-08-11" and day <="2019-08-17" GROUP BY `day`,code,name; // 统计分组后的数量 select count(*) from (select code, name, day from tableName where day >="2019-08-11" and day <="2019-08-17" GROUP BY `day`,code,name) as table;
  1. update更新[case when then end]的使用
// 这句sql的意思是,更新sell字段,如果id=1 则sell的值为20,如果id=2 则sell的值为3 mysql> update test set sell=case -> id -> when 1 then 20 -> when 2 then 3 -> end -> where id in (1,2); // 批量更新多个字段则 mysql> update test set sell=case -> id -> when 1 then 90 when 2 then 8 end, -> account=case -> id -> when 1 then 'Feng' -> when 2 then 'Scort' end;
  1. distinct 去重
// 去掉重复的code select distinct code from daily where day >="2019-08-11" and day <="2019-08-17"; // 计算去重后的数目 select count(distinct code) as count from daily where day >="2019-08-11" and day <="2019-08-17";