百分比(保留两位小数)

  1. select concat (ROUND((sum(CASE WHEN state = 2 THEN 1 ELSE 0 END)/COUNT(*)*100) ,2),'%') as rate
  2. from table_name

修改字段为1-10的随机数

  1. update table set pri= floor(1 + rand()*10)

mysql 随机更新表里的几条数据

  1. update test_table set type = "aa"
  2. order by rand() limit 3

MySQL获取性别及其个数,占比

  1. select (case when sex=0 then '女' else '男' end) name,
  2. count(id) value,
  3. count(id)/(select count(id) from t_member) proportion
  4. from t_member
  5. group by sex

统计每月数据

  1. select DATE_FORMAT(create_time,'%Y-%m') as month
  2. from table_name
  3. where DATE_FORMAT(create_time,'%Y')='2021' group by month
  4. order by month
  5. -- 第二种
  6. select ifnull(t2.num, 0),
  7. t1.date
  8. from (
  9. SELECT CONCAT('2021', '-01') AS date
  10. UNION
  11. SELECT CONCAT('2021', '-02') AS date
  12. UNION
  13. SELECT CONCAT('2021', '-03') AS date
  14. UNION
  15. SELECT CONCAT('2021', '-04') AS date
  16. UNION
  17. SELECT CONCAT('2021', '-05') AS date
  18. UNION
  19. SELECT CONCAT('2021', '-06') AS date
  20. UNION
  21. SELECT CONCAT('2021', '-07') AS date
  22. UNION
  23. SELECT CONCAT('2021', '-08') AS date
  24. UNION
  25. SELECT CONCAT('2021', '-09') AS date
  26. UNION
  27. SELECT CONCAT('2021', '-10') AS date
  28. UNION
  29. SELECT CONCAT('2021', '-11') AS date
  30. UNION
  31. SELECT CONCAT('2021', '-12') AS date
  32. ) t1
  33. left join
  34. (select count(*) AS num, date_format(completion_time, '%Y-%m') AS completion_time
  35. from 业务表
  36. where is_deleted = 0) t2 on t1.date = t2.completion_time
  37. order by t1.date

清除缓存

  1. reset query cache

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据

  1. -- DATE_FORMAT(date,format)
  2. select DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s') time

STR_TO_DATE(str,format)函数是将时间格式的字符串(str),按照所提供的显示格式(format)转换为DATETIME类型的值

  1. -- STR_TO_DATE(str,format)
  2. SELECT STR_TO_DATE('2021-01-01 10:20:30','%Y-%m-%d %H:%i:%s') AS result;

查找某一天的数据

  1. -- 日期格式 2020-10-30
  2. SELECT
  3. *
  4. FROM
  5. user
  6. WHERE
  7. TO_DAYS(create_time)=TO_DAYS(NOW())

查询每一天某个时间段的所有记录(例:9:00:00到21:00:00)

  1. SELECT * FROM 表名
  2. WHERE DATE_FORMAT(create_time,'%H:%i:%S')>='09:00:00'
  3. and DATE_FORMAT(create_time,'%H:%i:%S')<='21:00:00'
  4. SELECT * FROM 表名
  5. WHERE DATE_FORMAT(create_time,'%H:%i:%S') BETWEEN '09:00:00' and '21:00:00'