Sai*_*ash 13 mysql sql if-statement
表A包括姓名,secondname,姓氏,MSISDN,registrationdate ..表B有姓名,secondname,姓氏,MSISDN,registrationdate和其他一些列的 - 但我只需要考虑这些提到的5列.我有类似的东西
SELECT SELECT A.MSISDN,A.FIRSTNAME,A.SECONDNAME,A.LASTNAME,A.REGDATE, B.MSISDN,B.FIRSTNAME,B.SECONDNAME,B.LASTNAME,B.REGDATE
FROM TABLE1 A
INNER JOIN TABLE2 B ON A.MSISDN = B.MSISDN
WHERE A.FIRSTNAME != B.FIRSTNAME
OR A.LASTNAME != B.LASTNAME
Run Code Online (Sandbox Code Playgroud)
以前我只考虑表A中的名字,姓氏并检查表B中的不匹配,但我得到了数千条记录作为结果,我想缩小搜索范围.
我如何在这里包含if else案例
if a.firstname == b.firstname && a.secondname == b.lastname - Ignore this record.
if a.firstname == b.firstname && a.lastname == b.lastname - Ignore this record.
if a.firstname == b.firstname && a.lastname == b.secondname- Ignore this record.
if a.firstname not equal to b.firstname - show this record as result
if a.firstname == b.firstname && a.secondname not equal to b.lastname - show this record as result
Run Code Online (Sandbox Code Playgroud)
否则将所有记录显示为不属于上述任何情况的结果.如果可能的话,请在检查不匹配时包括忽略大写字母和小写字母的解决方案.
这里的问题是,执行从@sagi查询后,结果我得到它具有之间的第一,第二和lastnames完美的比赛,但具有不同的注册日期行 - 因为我们不考虑在查询登记日,它会影响结果吗?
sag*_*agi 11
这应该做的伎俩:
SELECT A.*, B.*
FROM TABLE1 A
INNER JOIN TABLE2 B ON A.MSISDN = B.MSISDN
WHERE (UPPER(B.FIRSTNAME),UPPER(B.LASTNAME)) NOT IN ((UPPER(A.FIRSTNAME),UPPER(A.LASTNAME)),(UPPER(A.FIRSTNAME),UPPER(A.SECONDNAME)))
Run Code Online (Sandbox Code Playgroud)
不需要IF
,如果这个条件返回true,则意味着你的所有条件都得到满足,并且要么first_name
是不同的,要么last_name
是.
归档时间: |
|
查看次数: |
1957 次 |
最近记录: |