首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL查询-简单的数学问题

mySQL查询-简单的数学问题
EN

Stack Overflow用户
提问于 2012-07-02 19:54:08
回答 2查看 43关注 0票数 0

我每个人有两个电话号码。他们中的一些人只填写了电话,另一些人只填写了telephone2,还有的两个都填写了。

我正在尝试查找具有相同电话号码的其他人,无论是电话=电话、电话= telephone2、telephone2 =电话、telephone2 = telephone2

问题是,如果telephone1为null,那么我的现有代码将把它与具有电话号码的下一个人匹配,而不管它是否具有电话或telephone2 null。我需要向代码中添加什么。

代码语言:javascript
复制
    function getothers($tid,$criteria,$telephone,$telephone2,$elector){
                global $dbh;
                $tid = '-TID'.$tid;
                 $sql = "SELECT * FROM electors 
WHERE (telephone > 0 OR telephone2 > 0)
AND records NOT RLIKE '$tid'
AND (telephone IN ('$telephone','$telephone2') 
OR telephone2 IN ('$telephone','$telephone2')) 
AND ID != '$elector'  LIMIT 10";
                return $dbh->query($sql);
            }
EN

回答 2

Stack Overflow用户

发布于 2012-07-02 20:04:54

代码语言:javascript
复制
SELECT T_el.*
FROM (electors AS T_el) LEFT JOIN (electors AS T_dup)
ON (T_el.ID!=T_dup.ID
  AND (
    (T_el.telephone IS NOT NULL AND (T_el.telephone=T_dup.telephone OR T_el.telephone=T_dup.telephone2))
    OR
    (T_el.telephone2 IS NOT NULL AND (T_el.telephone2=T_dup.telephone OR T_el.telephone2=T_dup.telephone2))
    )
)
WHERE T_dup.ID IS NOT NULL
GROUP BY T_el.ID
票数 1
EN

Stack Overflow用户

发布于 2012-07-02 20:05:40

代码语言:javascript
复制
function getothers($tid,$criteria,$telephone,$telephone2,$elector){
            global $dbh;
            $tid = '-TID'.$tid;
             $sql = "SELECT * FROM electors WHERE (telephone > 0 AND telephone IN ('$telephone','$telephone2'))  OR (telephone2 > 0 AND telephone2 IN ('$telephone','$telephone2')) $criteria AND records NOT RLIKE '$tid' AND ID != '$elector'  LIMIT 10";
            return $dbh->query($sql);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11293148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档