Announcement

Collapse
No announcement yet.

"WHERE* REGEXP_REPLACE" - Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • "WHERE* REGEXP_REPLACE" - Problem

    Guten Tag,

    ich hänge gerade bei einer mySQL - Abfrage fest und hoffe, hier die Lösung zu bekommen. Danke schon mal im Voraus für hilfreiche Tipps.

    Folgende Situation:

    ich nutze mySQL, um Daten, die ich als csv-Dateien bekommen habe, neu und anders mit einander zu verknüpfen. Letztlich brauche ich csv-Dateien mit einer bestimmten Datenstruktur zum Import in eine Software.

    Habe 2 Tabelle (accounts und contacts). Jetzt will ich die Tabelle contacts updaten, und zwar immer dort, wo in deren Spalte contacts.ACC_ID eine Zahl NACH einem Komma (Spalte hat ein Text-Format) einer accounts.ACC_ID entspricht. Das Kommt dient hier als Trennzeichen zwischen 2 Zahlen.

    Bsp:
    accounts.AAC_ID = 253
    contacts.ACC_ID = 227,253 > Update



    Versucht habe ich es so in der Art:

    Update `contacts`,`accounts` set `... WHERE REGEXP_REPLACE(`contacts`.ACC_ID, '^([0-9]),([0-9])$', '\3') = `accounts`.ACC_ID

    (ich will den Inhalt von `contacts`.ACC_ID in (irgendwas)Komma(irgendwas) aufsplitten und den 3. Teil davon mit `accounts`.ACC_ID vergleichen)

    Mehr als 1 Komma gibt es in der Spalte contacts`.ACC_ID nicht und eine Beschränkung auf nur die Felder, die ein Komma enthalten, ergänze ich dann noch.

    Problem:

    Datenbank meldet "FUNCTION dbxxx.REGEXP_REPLACE existiert nicht"

    Meine Fragen dazu:

    - Kann es sein, dass die Nutzung dieser Funktion in der Datenbank untersagt ist (ist ein managed Server)?
    - ist meine Schreibweise in der Benutzung der Funktion falsch ?
    - gibt es eine geeignetere Funktion für meinen Zweck und wenn ja: mit welcher Schreibweise ?

    Viele Grüße
    Pingu
    Zuletzt editiert von pinguini72; 31.01.2019, 11:00. Reason: ` fehlten

  • #2
    REGEXP_REPLACE ab MySQL 8
    Christian

    Comment


    • #3
      Danke.
      Wo in PHPmyAdmin kann ich sehen, welche Version von mySQL ich habe ?
      Bin bei 1und1, habe auch dort noch keine Angabe dazu gefunden.

      Und gibt es eine andere Funktion, die ich in der Datenbank verwenden könnte ?

      Comment


      • #4
        https://www.google.com/search?q=phpm...ient=firefox-b

        https://dev.mysql.com/doc/refman/5.5/en/regexp.html

        Insofern wirst du das mit der Stringverarbeitung selbst extrahieren müssen
        Christian

        Comment


        • #5
          ja ok.

          Gibt es irgendeinen Browser, in dem das autovervollständigen mit "www" in der Adresszeile abgeschaltet werden kann ?

          Kann Script auf Server im Browser nur über IP aufrufen, um Script dort auszuführen. Das geht aber derzeit nicht, da mit jeder bisher getestete Browser ein www davorsetzt. Einstellungen im Firefox dafür geändert (about:config; browser.fixup.alternate.enabled;false und www bei browser.fixup.alternate.prefix; gelöscht) - es wird aber immer noch ein www davorgesetzt ...

          Comment


          • #6
            Bei meinem Firefox passiert das weder zu Haus noch auf Arbeit...
            Christian

            Comment


            • #7
              welche Version hast du ? Ich hab Firefox Quantum 65.0
              Hast du irgendwas an den Einstellungen geändert ?

              Comment


              • #8
                Zu Hause die neuste, hier die 52. Auf die Einstellungen habe ich keinen Zugriff
                Christian

                Comment


                • #9
                  Mysteriöööös ... trotzdem Danke für deine Antworten.

                  Ich mach das Update jetzt manuell, wenn auch ungern so, weil zu fehleranfällig :-(
                  Will ja auch mal fertig werden ...

                  Comment


                  • #10
                    "WWW" sowas geschieht vermutlich, wenn der Browser die IP nicht für eine solche hält, also Tippfehler ..

                    zu einem Fehler anfällig update am offenen Herzen:
                    vielleicht mit 2-3 Handgriffen eine Jointabelle erstellen, die die aufbereitetet Kriterien enthält und Kontrollabrfragen erlaubt?
                    Ich würde sowas da oben nicht machen, es ist ja kaum noch nachvollziehbar ...

                    Comment


                    • #11
                      Die IP war korrekt, in jeden Browser. In Chrome, Firefox, IE, Opera, Torch und Slimjet getestet: alle setzen vor IP automatisch ein www, trotz http://(IP)
                      Echt ärgerlich, die Bevormundung durch Browser-Anbieter ... :-(

                      Comment


                      • #12
                        Das klingt eher nach Bevormundung durch den Server (Deinen?), der ein URL Rewrite macht oder sowas
                        Meine Browser machen es jedenfalls nicht, ich erinnere mich dunkel, dass es glaub ich vor Jahren beim FF mal sowas gab. Ich mag die Vermischung von Such (öffentlich, Historie, Bookmarks) und Adressfeld nicht und hab das sicher nicht im Defaultmodus.

                        Comment


                        • #13
                          Noch mal zurück zu meiner ursprünglichen Frage:

                          Hab's jetzt mit dem Umweg über Excel gemacht.
                          Daten als *csv exportiert, nach den Zeilen die in der Spalte ein Komma enthielten, gefiltert," *," mit "" ersetzt, als *.csv wieder exportiert und dann hatte ich nach dem Import in eine neue DB-Tabelle jeweils nur noch die ID übrig, mit der ich bei update vergleichen wollte.
                          Geht sicher eleganter, aber manchmal ist der einfachere Weg der geeignetere ;-)

                          Etwas vergleichbares (Daten anhand ds Vergleichs mit Daten aus einer anderen Tabelle updaten) geht vllt auch in Excel. Aber ich kann es bisher nur in mySQL ...

                          Comment

                          Working...
                          X