mysql一些语法(持续更新)

8 篇文章 0 订阅

我们在开发项目的时候,其实就是处理数据库,多线程。所以mysql需要了解很多。

可参考:

一些实用的MySql方法(持续更新)

1:DATE_FORMAT语法。

 我们在mysql查询的时候。有的时候根据设置不同的时间格式,如你的create_time是“2020-11-26 10:10:10”改成“2020-11-26”这个时候,我们使用

select DATE_FORMAT(create_time, '%Y-%m-%d') from 表名

这样就可以了。如果我们根据小时来查询,如需要查询11:00 ,12:00,13:00这个小时维度。

DATE_FORMAT(create_time, '%H:00') 

如果是年月日时分秒的话

 DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s')

特别说明的是:H表示24小时制度,h是12小时制度。   分钟是i  不是m

2:DIV语法 和 ceil语法。

我们在mysql查询的时候,有的时候需要除以一个固定的数。比如金额(amout)除以50  

amout div 50

即可。

如果向上取整。则直接执行。

ceil(amout div 50)

3:COALESCE()

这个函数主要用来进行空值处理

如:COALESCE(字段A,0)

如果字段A是空值,则为0 

4:group by 和order by以及max结合实现查找某个小时最大值

我们在查询完数据后,还需要排序下,这个时候就我们就需要使用group by 和order  by这样就能取处group by 中的最大值并且排序

SELECT
	x.time AS time,
	x.hourTime AS hourTime,
	Max(x.count) AS count
FROM
	(
		SELECT
			sum(count) AS count,
			DATE_FORMAT(
				create_time,
				'%Y-%m-%d %H:00'
			) AS time,
			DATE_FORMAT(create_time, '%H:00') AS hourTime
		FROM
			order_main
		WHERE
			pay_state = 1
		AND date_sub(curdate(), INTERVAL 10 DAY) <= create_time
		GROUP BY
			time
		ORDER BY
			count DESC
	) AS x
GROUP BY
	hourTime

首先通过group by 实现按照(年月日时)分类然后按照order by实现大小排序,最后在外层在根据时间(小时)分类,并且通过Max()取最大值。

5:查询某个数据出现多次的情况(group by 和having)。

我们在数据库查找数据某一个数据出现多条,需要使用group by 和 having一起使用。

select page_name from page_record group by page_name HAVING count(page_name)>=2

6:CAST函数

有的时候我们在查询sql的时候需要将将原有的数据格式切换成其他的类型。

Cast(字段名 as 转换的类型 ),其中类型可以为:

CHAR[(N)] 字符型 
DATE  日期型
DATETIME  日期和时间型
DECIMAL  float型
SIGNED  int
TIME  时间型

SELECT
	cast(id AS SIGNED) AS id,
	cast(phone_number as CHAR) as phone_number,
cast(MAX(promoter_code + 1) AS CHAR) AS maxCode
FROM
	my table 

参考:Mysql中Cast()函数的用法_Dongguo丶的博客-CSDN博客_mysqlcast函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值