SQL查询:如何编写语句找出表中homeph与mobileph相等的记录?
查找homeph与mobileph值相等的SQL查询方案
基础查询语句
假设你的数据表名为your_table,只需在WHERE子句中直接比较两个字段的值即可:
SELECT id, homeph, mobileph FROM your_table WHERE homeph = mobileph;
处理NULL值的特殊情况
如果homeph或mobileph字段可能存在NULL值,上面的语句不会返回两个字段同时为NULL的记录(因为SQL中NULL和任何值比较结果都为UNKNOWN,不满足匹配条件)。如果需要包含这类记录,可以使用以下方案:
通用写法(适用于所有SQL数据库)
SELECT id, homeph, mobileph FROM your_table WHERE homeph = mobileph OR (homeph IS NULL AND mobileph IS NULL);
数据库特有简化写法
- MySQL/MariaDB 可以使用安全等于运算符
<=>:
SELECT id, homeph, mobileph FROM your_table WHERE homeph <=> mobileph;
- PostgreSQL 可以使用
IS NOT DISTINCT FROM:
SELECT id, homeph, mobileph FROM your_table WHERE homeph IS NOT DISTINCT FROM mobileph;
内容的提问来源于stack exchange,提问作者Arjun L
相关产品推荐
相关产品推荐

