MySQL 常用的SQL语句

一、说明

      这篇博客用于记录工作中用到的一些SQL,如果对你有帮助,帮忙点个赞可好。。。

二、查询相关

1、查询某张表的所有字段名

select * from information_schema.columns where table_name='t_user' ;

2、查询2小时内的数据

-- 方法一
SELECT * FROM 表名 WHERE 字段名>NOW()-INTERVAL 2 HOUR;
-- 方法二
SELECT * FROM 表名 WHERE 字段名 > DATE_SUB(NOW(), INTERVAL 60 MINUTE);

3、查询一天内的数据 

-- 方法一
select * from table where to_days(column_time) = to_days(now());
-- 方法二
select * from table where date(column_time) = curdate(); 

4、查询7天内的数据

select * from table  where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

5、查询1隔越内的数据

select * from table  where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(column_time);

6、统计某张表的数据

SELECT
	date_format( rd.createtime, '%Y%m' ),
	SUM( card_cost ) / 100,
	SUM( flow_cost ) / 100,
	COUNT( * ) 
FROM
	pur_recorddetail rd
	INNER JOIN iot_card c ON c.iccid = rd.iccid 
WHERE
	1 = 1 
	AND c.type = 1 
GROUP BY
	date_format( rd.createtime, '%Y%m' )

7、查询某张表的字段名及注释,用于生成word文档

SELECT
COLUMN_NAME 代码,
COLUMN_COMMENT 名称,
COLUMN_TYPE 数据类型,
IS_NULLABLE as 是否可以为空,
COLUMN_DEFAULT as 默认值,
COLUMN_COMMENT 注释
FROM
INFORMATION_SCHEMA.COLUMNS
where
-- wx 为数据库名称,到时候只需要修改成你要导出表结构的数据库即可
table_schema ='wx'
AND
-- t_article为表名,到时候换成你要导出的表的名称
-- 如果不写的话,默认会查询出所有表中的数据,这样可能就分不清到底哪些字段是哪张表中的了,所以还是建议写上要导出的名名称
table_name = 't_article'

三、插入相关

1、把a_copy表的数据插入到a表中,这种情况针对自增id的,由于自增id,insert的时候不需要id这个字段

insert into t_user  ( name, password, old, updatetime )  
select
	name,
	password,
	old,
	updatetime
from 
	t_user_copy

2、在插入语句中使用条件判断,用于解决高并发,满足指定的条件才能插入数据,在DAO层次判断

·INSERT INTO t_order ( user_id, entrust_order_id, currency_id, order_type, order_no, price, total_price, total_count, pay_type, pay_name, pay_code, reference_code ) SELECT ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? FROM DUAL WHERE EXISTS ( SELECT aa.totalOrderCount, bb.entrustCount FROM ( SELECT count( entrust_order_id ) AS totalOrderCount FROM t_order WHERE entrust_order_id = ? AND entrust_order_id != 0 AND order_status = '待付款' AND seller_confirm = '待确认' AND is_active = 0 ) AS aa, (select count(id) as entrustCount from t_entrust_order where id = ? and surplus_count >= ? and order_status in ('发布中','交易中')) as bb WHERE aa.totalOrderCount < 3 AND bb.entrustCount > 0 )

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wjhsmart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值