Revo: urldecode für mysql

Hallo alle,

ich brauche für Mysql unbedingt eine Funktion, die das selbe tut, wie PHP urldecode($mystring).

Gibt es so eine schon?
In der Doku habe ich nichts gefunden.

Falls nicht:
Wie implementiert man die am besten selber?

Gruß
Revo

  1. Hallo,

    ich brauche für Mysql unbedingt eine Funktion, die das selbe tut, wie PHP urldecode($mystring).

    warum?

    Lesetipp zu meiner Frage: http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/

    Gibt es so eine schon?

    Nein.

    Wie implementiert man die am besten selber?

    Als benutzerdefinierte Funktion in C oder C++. Alternativ als Stored Routine mit den eingebauten Funktionen.

    Ich persönlich würde dies jedoch der verarbeitenden Programmiersprache überlassen, die vermutlich bereits eine fertige Funktion hat.

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      ich brauche für Mysql unbedingt eine Funktion, die das selbe tut, wie PHP urldecode($mystring).

      warum?

      »»
      die spalte einer großen tabelle muss sehr schnell urldecodriert werden. der einsatz von z.b. php um das zu tun würde einen riesigen performance verlust bedeuten. es ist auch nicht möglich, beim einfügen der daten das alles schon zu erledigen.

      Lesetipp zu meiner Frage: http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/

      kontextwechsel möchte ich wie gesagt aus performance gründen vermeiden.

      Gibt es so eine schon?

      Nein.

      Wie implementiert man die am besten selber?

      Als benutzerdefinierte Funktion in C oder C++. Alternativ als Stored Routine mit den eingebauten Funktionen.

      das sollte ich mir auf jeden fall mal angucken.
      wie würde ich so eine stored routine implementieren?

      Ich persönlich würde dies jedoch der verarbeitenden Programmiersprache überlassen, die vermutlich bereits eine fertige Funktion hat.

      Freundliche Grüße

      Vinzenz

      lg
      revo

      1. Hello,

        die spalte einer großen tabelle muss sehr schnell urldecodiert werden.

        Wie kommen die Daten denn urlcodiert in die Tabelle?

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hello,

          die spalte einer großen tabelle muss sehr schnell urldecodiert werden.

          Wie kommen die Daten denn urlcodiert in die Tabelle?

          »»
          eine datei wird direkt in das mysql datenbank verzeichnis kopiert.
          die speicherengine ist CSV ...

          möglicherweise lohnt es sich sogar um das update zu vermeiden und es ganz bei dem reinkopieren eine neue engine auf der basis der csv engine zu schreiben.
          das muss ich mir noch überlegen ...

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          »»

          grüße zurück aus dem harzvorland
          revo

      2. Hi!

        die spalte einer großen tabelle muss sehr schnell urldecodriert werden. der einsatz von z.b. php um das zu tun würde einen riesigen performance verlust bedeuten. es ist auch nicht möglich, beim einfügen der daten das alles schon zu erledigen.

        Lesetipp zu meiner Frage: http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/
        kontextwechsel möchte ich wie gesagt aus performance gründen vermeiden.

        Das Problem ist, dass der Kontextwechsel bereits irgendwann vor dem Einlesen stattgefunden hat und deiner Schilderung gemäß offensichtlich nicht angemessen berücksichtigt wurde. Kontextwechsel sind normalerweise "einfach da", weil zwei Systeme miteinander Daten austauschen, sie sind nicht von Willen des Programmierers abhängig. Wenn du die Ursache beseitigen willst, setz an der Stelle an, an der die Daten in den URL-Kontext gebracht wurden, obwohl er (vermutlich) nicht vorlag, beziehungsweise da, wo sie bei der Übernahme nicht aus selbigem befreit wurden.

        wie würde ich so eine stored routine implementieren?

        Was sind deine konkreten Fragen dazu? Die Syntax zu Stored Procedures ist nicht mal eben schnell hier erläutert.
        Die generelle Systax ist im Kapitel Stored Programs and Views beschrieben, wobei dich speziell eine Stored Function interessieren wird. Du benötigst sicher dazu die MySQL Compound-Statement Syntax, die im Kapitel SQL Statement Syntax angesiedelt wird. Außerdem benötigst du noch Functions and Operators, speziell die String Functions (besonders UNHEX() und CHAR() können dir nützlich sein). Wenn das Ganze dann auch noch mit UTF-8 umgehen können muss, wird es etwas aufwendiger.

        Lo!

        1. Hi!

          die spalte einer großen tabelle muss sehr schnell urldecodriert werden. der einsatz von z.b. php um das zu tun würde einen riesigen performance verlust bedeuten. es ist auch nicht möglich, beim einfügen der daten das alles schon zu erledigen.

          Lesetipp zu meiner Frage: http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/
          kontextwechsel möchte ich wie gesagt aus performance gründen vermeiden.

          Das Problem ist, dass der Kontextwechsel bereits irgendwann vor dem Einlesen stattgefunden hat und deiner Schilderung gemäß offensichtlich nicht angemessen berücksichtigt wurde. Kontextwechsel sind normalerweise "einfach da", weil zwei Systeme miteinander Daten austauschen, sie sind nicht von Willen des Programmierers abhängig. Wenn du die Ursache beseitigen willst, setz an der Stelle an, an der die Daten in den URL-Kontext gebracht wurden, obwohl er (vermutlich) nicht vorlag, beziehungsweise da, wo sie bei der Übernahme nicht aus selbigem befreit wurden.

          Die TextDatei stammt von einem Server auf den ich keinen Zugriff habe, der über das lesen hinausgeht.

          wie würde ich so eine stored routine implementieren?

          Was sind deine konkreten Fragen dazu? Die Syntax zu Stored Procedures ist nicht mal eben schnell hier erläutert.
          Die generelle Systax ist im Kapitel Stored Programs and Views beschrieben, wobei dich speziell eine Stored Function interessieren wird. Du benötigst sicher dazu die MySQL Compound-Statement Syntax, die im Kapitel SQL Statement Syntax angesiedelt wird. Außerdem benötigst du noch Functions and Operators, speziell die String Functions (besonders UNHEX() und CHAR() können dir nützlich sein). Wenn das Ganze dann auch noch mit UTF-8 umgehen können muss, wird es etwas aufwendiger.

          Die Syntax ist mir bekannt - am liebsten wäre es mir, und deshalb frage ich, wenn schon irgendjemand vorher das selbe implementiert hat.
          Aber mit dem anderen Antwortpost wurde mir das tatsächlich schon beantwortet: Und noch dazu ist die Implementierung als UDF wahrscheinlich wensentlich effizienter ...

          Lo!

          Lg
          Revo

  2. Guten Tag,

    Gibt es so eine schon?
    In der Doku habe ich nichts gefunden.

    Keine nativ von MySQL AB.

    Falls nicht:
    Wie implementiert man die am besten selber?

    Als UDF (User Defined Function). Jemand war aber schon so nett.

    Gruß
    Christoph Jeschke

    --
    Zend Certified Engineer
    Certified Urchin Admin