mysql sql常用方法
GROUP_CONCAT() 分组后聚合字段展开数据
select GROUP_CONCAT(id),count(id) from table group by id
distinct 去重
select *, count(distinct name) from table group by name
结果:
id name count(distinct name)
1 a 1
2 b 1
3 c 1
IFNULL() 函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
IFNULL() 函数语法格式为:
IFNULL(expression, alt_value)
weekofyear() 获取本周是一年中的第几周
select weekofyear(curdate());
UNIX_TIMESTAMP 日期转为时间戳
select UNIX_TIMESTAMP('2015-04-29','yyyy-MM-dd')
FROM_UNIXTIME 时间戳转为日期
select FROM_UNIXTIME('1430236800','yyyy-MM-dd')
case when 多条件判断
写法一:
case 表达式 when 条件1 then 值1
when 条件2 then 值2
····
else 值 end
写法二:
case when a-b=0 and a != 0 then 值
when ··· then ···
else 值 end
FIND_IN_SET
SELECT * FROM task_detatils WHERE FIND_IN_SET( ‘1’, responsible_user)
HAVING
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。
SELECT
max(age)
FROM
table_name
GROUP BY
age
HAVING
max(age) > 0;
遇到无符号类型,加减乘除编程负数,符号移除sql报错,解决方案
select SUM(CAST(`integral` AS SIGNED) * CAST(`status` AS SIGNED)) from ims_truein_jys_integral