首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql 切合业务精用语句收集

mysql 切合业务精用语句收集

作者头像
张炳
发布2019-08-02 16:24:09
4360
发布2019-08-02 16:24:09
举报

同一个表,group by 对不同字段进行不同条件统计

例如下面的 根据 self_wechatid 进行group by ,统计出 性别总数,男总数(gender = 1为男),女总数(gender = 2为男),不详总数。

SELECT
    self_wechatid,
    count(*) AS total,
    sum(IF(gender = 1, 1, 0)) AS man,
    sum(IF(gender = 2, 1, 0)) AS girl,
    (
        count(*) - sum(IF(gender = 1, 1, 0)) - sum(IF(gender = 2, 1, 0))
    ) AS non
FROM
    al_wx_contact
WHERE
    create_time > 1526730791
GROUP BY
    self_wechatid;

同一张表中复制(有主键)

insert into 表1(字段1,字段2,字段3) select 字段1,字段2,字段3 from 表1 where id=1

连表(含where条件)更新Update语句

update sumholdtime s,province b set s.province = b.province where s.area_code=b.area_code;
update t_tc_telephone s,t_mobile_number_section b set s.province=b.province,s.city=b.city where s.area_code = b.area_code and s.area_code != '';
update t_non_tc_telephone s,t_mobile_number_section b set s.province=b.province,s.city=b.city where s.area_code = b.area_code and s.area_code != '';

从数据表t1 中把那些id值在数据表t2 里有匹配的记录全删除掉

DELETE t1 FROM t1,t2 WHERE t1.id=t2.id  
  或
DELETE  FROM t1 USING t1,t2 WHERE t1.id=t2.id

从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉

DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 
或
DELETE  FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 

从两个表中找出相同记录的数据并把两个表中的数据都删除掉

DELETE t1,t2 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25 

注意此处的delete t1,t2 from 中的t1,t2不能是别名 如:

delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25 

在数据里面执行是错误的(MYSQL 版本不小于5.0在5.0中是可以的)


后续持续更新中

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 同一个表,group by 对不同字段进行不同条件统计
  • 同一张表中复制(有主键)
  • 连表(含where条件)更新Update语句
  • 从数据表t1 中把那些id值在数据表t2 里有匹配的记录全删除掉
  • 从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉
  • 从两个表中找出相同记录的数据并把两个表中的数据都删除掉
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档