摘要:
窗口函数ROW_NUMBER去重删除(MySQL 8.0+,精准保留目标行) sql -- 按name分组,保留每组最小id,删其余重复行 DELETE t FROM user t JOIN ( SELECT id, ROW_NUMBER() OVER (PARTITION BY name ORDE 阅读全文
摘要:
带ORDER BY+LIMIT的限量删除(避免误删,精准控量) sql -- 按注册时间倒序,仅删最早注册的10条过期用户(防止批量误删) DELETE FROM user WHERE register_time < '2020-01-01' ORDER BY register_time ASC L 阅读全文
摘要:
删除重复数据(保留最小 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 -- 删除手机号不是11位纯数字的用户记录 DELETE FROM user WHERE phone NOT REGEXP '^1[0-9]{10}$'; -- 删除用户名包含特殊字符(非字母/数字/下划线)的记录 DELETE FROM user W 阅读全文
摘要:
带排序+限制删除(避免一次性删过多) sql -- 删前10条分数最低的记录(按score升序,取前10) DELETE FROM score ORDER BY score ASC LIMIT 10; -- 删status=0且创建时间超30天的前500条(分批删,防锁表) DELETE FROM 阅读全文
摘要:
多条件筛选(AND/OR/NOT) 用于组合多个条件定位数据,例如查询「年龄20-30岁且来自北京」的用户: sql SELECT username, age, city FROM user WHERE age BETWEEN 20 AND 30 -- 等价于 age >=20 AND age <= 阅读全文