Tim: MYSQL - JOIN mit Funktionsergebnis

Hallo liebe Community,
ich habe ein Problem und eine Lösungsidee. Bin mir aber nicht sicher, ob sich dies mit einem geschickten SQL Statement lösen lässt.

Ich habe mehrere Tabellen und möchte diese mit einem JOIN verknüpfen. Anschließend möchte ich das Ergebnis noch mit einem GROUP BY gruppieren. Soweit funktioniert auch alles. Ich muss nun eine Änderung einpflegen, die mich vor ein Problem stellt. Eins der Attribute in einer Ergebniszeile ist eine IP Adresse (v4). Nun muss ich on the fly die IP Adresse mit Hilfe einer GeoDatenbank in ein Land umwandeln. Meine Idee war nun, eine Funktion in MySQL zu schreiben, die die Umwandlung ipToCountry() übernimmt. Ich muss anschließend nach dem Land gruppieren. Ist das überhaupt möglich? Kann mann nach einem Funktionsergebnis gruppieren?

Liebe Grüße,
Tim

  1. Hallo,

    Nun muss ich on the fly die IP Adresse mit Hilfe einer GeoDatenbank in ein Land umwandeln.

    die übliche Lüge :-)

    Kann mann nach einem Funktionsergebnis gruppieren?

    ja, kann man. Das ist prinzipiell kein Problem. MySQL kann dazu (derzeit) keine Indexe nutzen, das könnte also laaaaaangsam werden.

    Freundliche Grüße

    Vinzenz

    1. moin Vinzenz,

      MySQL kann dazu (derzeit) keine Indexe nutzen, das könnte also laaaaaangsam werden.

      da MySQL nun ja ganz zu Oracle gehört, kann MySQL bestimmt auch bald funktionale indexe ;-)

      Ilja

  2. Hi,

    Eins der Attribute in einer Ergebniszeile ist eine IP Adresse (v4). Nun muss ich on the fly die IP Adresse mit Hilfe einer GeoDatenbank in ein Land umwandeln.

    *Musst* du das on-the-fly machen?

    MfG ChrisB

    --
    The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]
    1. Hallo,

      Eins der Attribute in einer Ergebniszeile ist eine IP Adresse (v4). Nun muss ich on the fly die IP Adresse mit Hilfe einer GeoDatenbank in ein Land umwandeln.

      *Musst* du das on-the-fly machen?

      ganz bestimmt nicht. Das ist ein typischer Fall für sinnvolle Bereitstellung redundanter Informationen.

      Freundliche Grüße

      Vinzenz