sql日常方法积累

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 then1
	when 条件2 then2
 	····
 	elseend
 	
写法二:
case when a-b=0 and a != 0 thenwhen  ··· then ···
	elseend

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值