天天看点

sql杂记

根据日期分组

SELECT
DATE_FORMAT( detect_time, "%Y-%m-%d" ) AS time,
COUNT(id) AS total
FROM detect_video_task_result_real
GROUP BY DATE_FORMAT( detect_time, "%Y-%m-%d" )
      

Mysql on duplicate key update

在MySQL数据库中,如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句,而要插入的行与表中现有记录的惟一索引或主键中产生重复值,那么就会更新;如果插入的行数据与现有表中记录的唯一索引或者主键不重复,就会插入。

如果是插入操作,受到影响行的值为1;如果更新操作,受到影响行的值为2;如果更新的数据和已有的数据一样(就相当于没变,所有值保持不变),受到影响的行的值为0。

INSERT INTO table (a,b,c) VALUES (1,2,3)  
  ON DUPLICATE KEY UPDATE c=c+1;