-- 新增 users.vip_activated_at:成为 VIP 时间,用于排序(后付款/后设置在前) -- 执行:mysql -u user -p database < add-vip-activated-at.sql -- 若列已存在会报错,可忽略 ALTER TABLE users ADD COLUMN vip_activated_at DATETIME NULL COMMENT '成为VIP时间,付款=pay_time,手动=now,排序用'; -- 可选:为已有 VIP 用户回填 vip_activated_at(取该用户最近一次 vip 订单的 pay_time) -- UPDATE users u -- SET u.vip_activated_at = ( -- SELECT MAX(o.pay_time) FROM orders o -- WHERE o.user_id = u.id AND o.product_type = 'vip' AND o.status = 'paid' -- ) -- WHERE u.is_vip = 1 AND u.vip_activated_at IS NULL;