select_pay_user.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/bin/bash
  2. # MySQL 连接配置
  3. MYSQL_USER="root" # 替换为你的数据库用户名
  4. MYSQL_PASSWORD="123456" # 替换为你的数据库密码
  5. MYSQL_HOST="127.0.0.1" # 替换为数据库地址,如 127.0.0.1
  6. # 获取所有以 'ro' 开头的数据库
  7. DATABASES=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h$MYSQL_HOST -e "SHOW DATABASES LIKE 'ro%';" -s -N)
  8. TOTAL_RMB=0
  9. TOTAL_ROLE=0
  10. echo "开始查询所有 ro* 数据库的统计信息..."
  11. # 遍历每个数据库
  12. for DB in $DATABASES; do
  13. echo "数据库: $DB"
  14. # 查询1: 当日 RMB 总和(优化版,使用索引)
  15. SQL1="SELECT COALESCE(SUM(rmb), 0) FROM role_order_list WHERE order_date >= CURDATE() AND order_date < CURDATE() + INTERVAL 1 DAY;"
  16. SUM_RMB=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h$MYSQL_HOST -D $DB -e "$SQL1" -s -N 2>/dev/null)
  17. # 查询2: 当日创建的角色数量(优化版,使用索引)
  18. SQL2="SELECT COALESCE(COUNT(*), 0) FROM role WHERE create_date >= CURDATE() AND create_date < CURDATE() + INTERVAL 1 DAY;"
  19. COUNT_ROLE=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h$MYSQL_HOST -D $DB -e "$SQL2" -s -N 2>/dev/null)
  20. # 显示当前数据库的两个统计值
  21. echo " - 当日充值金额(美元): $SUM_RMB"
  22. echo " - 当日新角色数量: $COUNT_ROLE"
  23. echo ""
  24. # 分别累加到对应的总和
  25. TOTAL_RMB=$((TOTAL_RMB + SUM_RMB))
  26. TOTAL_ROLE=$((TOTAL_ROLE + COUNT_ROLE))
  27. done
  28. echo "========================================"
  29. echo "汇总结果:"
  30. echo "所有 ro* 数据库的当日充值总金额(美元): $TOTAL_RMB"
  31. echo "所有 ro* 数据库的当日新角色总数: $TOTAL_ROLE"