MySQL 我自己常用的语句汇总

1,更新,根据一个表更新另一个表,比如批量同步外键

  方法一:

  update 更新表 set 字段 = (select 参考数据 from 参考表 where  参考表.id = 更新表.id);

  update table_2 m  set m.column = (select column from table_1 mp where mp.id= m.id);

  方法二:

  update table_1 t1,table_2 t2 set t1.column = t2.column where t1.id = t2.pid;

2,视图,把相同字段的表合起来  

  SELECT `b`.`Id` AS `Id`,`b`.`状态` AS `状态` FROM `培训体系之部门培训` `b` UNION 
  SELECT `c`.`Id` AS `Id`, `c`.`状态` AS `状态` FROM `培训体系之安全培训` `c` UNION 
  SELECT `d`.`Id` AS `Id`, `d`.`状态` AS `状态` FROM `培训体系之理念培训` `d`;

3,触发器,更新订单表的状态时,同时根据订单号更新订单明细表的状态

  条件【触发:After;插入[ ],更新[√],删除[ ]】  

  BEGIN

    if(new.状态='新') then
      update 销售订单明细 set 状态='新' where 订单号=new.订单号 and 状态<>'删除';
    end if;

  END

4,触发器,更新一个时间戳

  条件【触发:Before;插入[ ],更新[√],删除[ ]】

  BEGIN

    if(new.仓库(箱)!=old.仓库(箱) or new.车间(箱)!=old.车间(箱) ) then
      set NEW.更新时间= set new.签到时间=DATE_FORMAT(NOW(),'%x-%m-%d %H:%i:%s');;
    end if; 

  END

5,触发器,获取刚刚添加记录的自增id

  条件【触发:After;插入[√ ],更新[],删除[ ]】

  new.id

 6,查询,分组查询,关键字用逗号隔开

  select class_id, group_concat(name) frome student group by class_id;

7,查询,查重

  SELECT 某列A,COUNT(*) FROM 表名 GROUP BY 某列A HAVING COUNT(*) > 1//查看重复数据的条数

8,去重,从口袋助理的app里导入自己的系统一些客户资料,但是客户名重复了,需要删除。  

1UPDATE `销售客户资料`, 2( 3 SELECT 4 count(客户名称) AS c, 5 客户名称, 6 是否口袋导入 7 FROM 8 `销售客户资料` 9 GROUP BY 10 客户名称 11 HAVING 12 c > 1 13) tmp 14 15SET `销售客户资料`.状态 = '删除' 16 17WHERE 18 `销售客户资料`.客户名称 = tmp.客户名称 19 AND `销售客户资料`.是否口袋导入 = '是' 20 AND `销售客户资料`.客户编码 != '';
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

sql注入

反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o

SQL UPDATE 语句:更新表中的记录语法及案例剖析

SQLUPDATE语句UPDATE语句用于更新表中的记录。SQLUPDATE语句UPDATE语句用于更新表中已存在的记录。SQLUPDATE语法UPDATE_table\_name_SET_column1_\_valu

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )