/ / mySQL क्वेरी - सरल गणितीय मुद्दा - php, mysql, pdo

mySQL क्वेरी - सरल गणितीय मुद्दा - php, mysql, pdo

मेरे पास प्रत्येक व्यक्ति के लिए 2 टेलीफोन नंबर हैं। उनमें से कुछ के पास केवल दूसरों में भरा टेलीफोन है और केवल दोनों में टेलीफोन भरा है और कुछ में दोनों हैं।

मैं एक ही टेलीफोन नंबर के साथ अन्य लोगों को खोजने की कोशिश कर रहा हूं, या तो टेलीफोन = टेलीफोन, टेलीफोन = टेलीफोन 2, टेलीफोन 2 = टेलीफोन, टेलीफोन नंबर = टेलीफोन नंबर 2

समस्या यह है कि अगर टेलीफोन 1 शून्य है और फिर मेरीमौजूदा कोड मैच की परवाह किए बिना एक टेलीफोन नंबर के साथ अगले व्यक्ति से मेल खाएगा यदि इसमें टेलीफोन या टेलीफोन 2 नल है मुझे कोड में क्या जोड़ने की आवश्यकता है

    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);
}

उत्तर:

उत्तर № 1 के लिए 1
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

जवाब के लिए 0 № 2
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);
}