12.22
- 删除重复数据(保留最小 id )
sql
-- 删除 user 表中 name 重复的记录,仅保留每个 name 对应最小 id 的那条
DELETE t1 FROM user t1
JOIN user t2
WHERE t1.id > t2.id AND t1.name = t2.name;
- 跨库表数据删除
sql
-- 删除 db1 库中 user 表和 db2 库中 log 表关联的记录
DELETE t1, t2 FROM db1.user t1
JOIN db2.log t2 ON t1.id = t2.user_id
WHERE t1.status = 0;
- 带 CASE 条件的精准删除
sql
-- 按用户等级删除:青铜用户且积分<100 直接删,白银用户积分<50 才删
DELETE FROM user
WHERE CASE
WHEN level = 'bronze' THEN integral < 100
WHEN level = 'silver' THEN integral < 50
ELSE FALSE
END;

浙公网安备 33010602011771号