我有两个表,我试图按姓氏和名字匹配数据。由于我有多个同名客户,我想尝试查看(在上一个查询中)电话号码或街道地址是否匹配。有没有办法在一个声明中这样做?
到目前为止我的简单陈述是:
SELECT *
FROM table1, table2
WHERE table1.LAST_NAME = table2.LAST_NAME
AND table1.FIRST_NAME = table2.FIRST_NAME
我不确定是否有办法在MySQL中执行以下操作: IF(table1.LAST_NAME = table2.LAST_NAME)AND(table1.FIRST_NAME = table2.FIRST_NAME)等于结果并找到重复项,根据街道地址或电话进行匹配。如果没有找到重复,只需按名称匹配。
答案 0 :(得分:0)
您可以通过添加空格检查来使额外比较可选:
SELECT *
FROM table1, table2
WHERE table1.LAST_NAME = table2.LAST_NAME
AND table1.FIRST_NAME = table2.FIRST_NAME
AND (table1.PHONE = table2.PHONE OR table1.PHONE = '' OR table2.PHONE = '')
AND (table1.ADDRESS = table2.ADDRESS OR table1.ADDRESS = '' OR table2.ADDRESS = '')
这样,如果任何一个表的PHONE
字段为空,则比较将通过,因此没有过滤效果。