You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写可匹配多列条件的SQL数据删除语句?

正确的多列匹配SQL删除语句写法

你提供的示例语句存在逻辑错误,无法正确实现需求。正确的写法需要为每个列单独指定等于判断,或者使用更简洁的IN子句写法:

写法一:多OR条件(兼容性最强)

DELETE FROM table_users
WHERE users = 'perico'
   OR password = 'perico'
   OR email = 'perico'
   OR name = 'perico';

这种写法直观易懂,所有SQL数据库都支持。每个条件独立判断某一列是否等于'perico',只要任意一个条件成立,对应的行就会被删除。

写法二:IN子句(更简洁)

DELETE FROM table_users
WHERE 'perico' IN (users, password, email, name);

这种写法将目标值与多个列进行匹配,逻辑和多OR条件完全一致,代码更紧凑。大部分现代数据库(如MySQL、PostgreSQL、SQL Server等)都支持这种语法。

原语句错误原因

你写的delete from table_users where users or password or email or name = "perico"逻辑不成立:OR连接的是布尔表达式,users、password、email会被直接当作布尔值解析(非空值视为true,空值视为false),这会导致所有users列非空的行都被误删,完全不符合你要匹配特定值的需求。

内容的提问来源于stack exchange,提问作者KhuBann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:55:20