MySQL中的条件语句

时间:2014-02-11 01:35:57

标签: mysql

我有两个表,我试图按姓氏和名字匹配数据。由于我有多个同名客户,我想尝试查看(在上一个查询中)电话号码或街道地址是否匹配。有没有办法在一个声明中这样做?

到目前为止我的简单陈述是:

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)等于结果并找到重复项,根据街道地址或电话进行匹配。如果没有找到重复,只需按名称匹配。

1 个答案:

答案 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字段为空,则比较将通过,因此没有过滤效果。