全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-20 6 分钟 ✍️ juanwangdev

delete 删除语句

delete 用于删除数据,核心是掌握条件控制与软删除实现。

基础删除

XML
<delete id="deleteById">
    DELETE FROM user WHERE id = #{id}
</delete>
Java
int rows = mapper.deleteById(id);
// rows 为影响行数,0 表示未删除任何数据

条件删除

XML
<delete id="deleteByEmail">
    DELETE FROM user WHERE email = #{email}
</delete>

<delete id="deleteBatch">
    DELETE FROM user WHERE id IN
    <foreach collection="ids" item="id" open="(" separator="," close=")">
        #{id}
    </foreach>
</delete>

软删除

方式一:更新状态字段

XML
<update id="softDeleteById">
    UPDATE user SET status = 0, update_time = #{updateTime}
    WHERE id = #{id}
</update>

方式二:使用逻辑删除字段

XML
<select id="selectActive" resultMap="BaseResultMap">
    SELECT * FROM user WHERE is_deleted = 0
</select>

注意:软删除推荐在查询时自动过滤已删除数据,避免物理删除后数据丢失。

级联删除

XML
<delete id="deleteUserAndOrders">
    DELETE u, o FROM user u
    LEFT JOIN orders o ON u.id = o.user_id
    WHERE u.id = #{id}
</delete>

注意:级联删除需谨慎使用,推荐通过外键约束或业务层控制删除顺序。

要点总结

  • delete 返回影响行数,0 表示未删除任何数据
  • 批量删除使用 foreach 标签构造 IN 条件
  • 软删除通过更新状态字段或逻辑删除字段实现
  • 级联删除需控制删除顺序,避免数据不一致

📝 发现内容有误?点击此处直接编辑

← 上一篇 typeAliases 类型别名
下一篇 → insert 插入语句
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库