phpbar.de logo

Mailinglisten-Archive

etwas kniffelig

etwas kniffelig

Uwe Driessen driessen at fblan.de
Mit Feb 25 18:27:40 CET 2009


Wir suchen jetzt schon seit 2 Tagen nach einer Lösung für folgendes Problem 

Tabelle 
domain_id,name , type, content

1,"test.example.org", "A","195.158.65.102"
1,"example.org, "MX","mail.example.org"
1,"example.org,"A","195.158.65.102"
1,"externer.example.org","A","195.158.65.102"
1,"externer.example.org","MX","mail.extern.de"
1,"intern.example.org","A","195.158.65.102"

2,"example2.org, "MX","mail.example.org"
2,"example2.org,"A","195.158.65.102"

3,"externer.example3.org","A","195.158.65.102"
3,"externer.example3.org","MX","mail.extern3.de"

4,"intern.example4.org", "A","195.158.65.102"
4,"example4.org, "MX","mail.example.org"




benötigte Antwort 

ein Ergebniss wenn content = "mail.example.org" für die eingetragene Domain/Subdomain
existiert
ein Ergebniss wenn kein type "MX" für die Subdomain aber type "MX" für die Hauptdomain
KEIN Ergebniss für die SubDomain/Domain wenn content <>  "mail.example.org"


select domain_id, name, content from records where type="MX" and name =
"externer.example.org";

= mail.extern.de

select domain_id, name, content from records where type="MX" and name like
substring_index("test.example.org", ".", -2);

= mail.example.org

select domain_id, name, content from records where type="MX" and name = "example.org";

= mail.example.org



wie bekomme ich das jetzt in ein SQL-select rein das ich immer nur dann ein positives
Ergebnis bekomme eben wenn "mail.example.org" im content steht 

ein paar der nicht funktionierende select versuche (nur ein paar wirklich von zahllosen
Versuchen) entweder hat die eine Konstellation nicht funktioniert oder es gab Ergebnisse
für alle
 

SELECT 'virtual_dummy'
        FROM records AS t1 JOIN records AS t2 USING (domain_id)
        WHERE (t1.type='MX' AND t1.name='%s' AND t1.content='mail.example.org')
        OR    (t1.name='%s' AND t2.type='MX' AND t2.content='mail.example.org')
        LIMIT 1;

SELECT 'virtual_dummy'
       FROM records AS t1 JOIN records AS t2 USING (domain_id)
       WHERE t1.name='%s' AND t2.type='MX' AND t1.type<>'A' AND t1.name='%s' AND
t2.content='mail.example.org' LIMIT 1;

Mit freundlichen Grüßen

Drießen

-- 
Software & Computer
Uwe Drießen
Lembergstraße 33
67824 Feilbingert
Tel.: +49 06708 / 660045   Fax: +49 06708 / 661397

_______________________________________________
Allgemeine Infos zur Liste: http://www.4t2.com/mysql/
Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de

php::bar PHP Wiki   -   Listenarchive