如何解决删除具有相同列数据的行
tbl_t
id name_id date t1 t2 s1 s2
1 25 10/05/20 same same NULL NULL
2 23 11/05/21 same same home NULL
3 25 12/05/20 same NULL NULL NULL
4 25 13/06/20 NULL NULL NULL NULL
期望输出:
tbl_t
id name_id date t1 t2 s1 s2
2 23 11/05/21 same same home NULL
3 25 12/05/20 same NULL NULL NULL
我想删除所有 t1=t2 和 s1=s1 的行
我尝试了以下 sql,但我发现它不起作用。
DELETE FROM tbl_t WHERE t1=t2 AND s1=s2
解决方法
问题在于 NULL
值。使用 NULL
安全的比较运算符:
DELETE FROM tbl_t
WHERE t1 <=> t2 AND s1 <=> s2;
几乎任何与 NULL
的比较都会导致 NULL
——包括 NULL = NULL
。并且 NULL
值在 false
子句中被视为 WHERE
(或等效的 WHERE
子句仅保留条件明确评估为 true
的行)。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。