per SQLl Strings bearbeiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • per SQLl Strings bearbeiten

    in meiner DB (MSSQL) befinden sich Datensätze, die Sonderzeichen, etc enthalten. Gibt es mit SQL eine Möglichkeit, die Dinger zu entfernen ??

    Beispiel:
    ich habe folgenden Eintrag: => Graphic/Video/special

    dann soll er mit per SQL folgendes daraus machen:
    GraphicVideospecial

    sprich einfach die Sonderzeichen entfernen (nicht nur "/" sondern alle, die ich möchte).

    gruss

  • #2
    Du kannst höchstens REPLACE() benutzen (siehe MySQL Docu).
    da musst du aber die Zeichen vorgeben, die ersetzt werden sollen.

    Und / ist doch kein Sonderzeichen, oder ?
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      und wie müßte das in dem Fall dann aussehen??

      REPLACE meine_tabelle (mein_feld) ... und wie jetzt weiter ??


      P.S. Ich habe keine Php oder ähnliches, nur reines SQL um das ganze zu machen.

      thx

      Kommentar


      • #4
        Ach so..

        Soweit ich weiß, geht es nur so:
        SELECT REPLACE(spalte,"suche nach", "ersetze durch") FROM tabelle;

        um die Daten zu ändern müsstest du wohl mit
        INSERT INTO tabelle2 (feld1,feld2) SELECT REPLACE(feld1,"/","") as feld1,feld2 FROM tabelle
        oder

        Nicht getestet: REPLACE INTO tabelle (feld1,feld2) SELECT REPLACE(feld1,"/",""),feld2 FROM tabelle;
        Zuletzt geändert von Troublegum; 15.05.2002, 16:24.
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          ok, ich werd das mal probieren! thx!

          Kommentar


          • #6
            REPLACE INTO tabelle (feld1,feld2) SELECT REPLACE(feld1,"/",""),feld2 FROM tabelle

            funktioniert leider nicht.
            Du musst also die Tabelle kopieren (Struktur) und dann alle Daten mit INSERT INTO tabelle2 (feld1,feld2) SELECT REPLACE(feld1,"/","") as feld1,feld2 FROM tabelle
            ersetzen und die Tabelle wieder umbennenen.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              Einfacher geht´s mit einem Umweg über php mit regulären Ausdrücken; damit bekommst du in einem Schritt alles weg, was nicht Buchstabe, Zahl oder Unterstrich ist: $feld1 = preg_replace('/[^a-zA-Z0-9_]/', '', $feld1);
              Ersetzen mit regulären Ausdrücken funktioniert in mySQL leider nicht.
              mein Sport: mein Frühstück: meine Arbeit:

              Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

              Kommentar


              • #8
                tja, das geht ja leider nicht... Nur SQL... (wg Geschwindigkeit)

                aber trotzdem THX

                Kommentar


                • #9
                  also, so sieht jetzt mein String aus:

                  INSERT INTO pea_rohdaten_dummy (Kategorisierung_St2,PeacockArtNr) SELECT REPLACE(Kategorisierung_St2,"/","") as Kategorisierung_St2,PeacockArtNr FROM pea_rohdaten

                  jetzt bekomme ich allerdings ne Fehlermeldung:
                  Leere Objekt oder Spaltennamen können nicht verwendet werden. Verwenden Sie bei bedarf ein Leerzeichen.

                  kann damit vielleicht einer was anfangen ???

                  gruss

                  Kommentar


                  • #10
                    Also, ich bin jetzt schonmal ein stückchen weiter, folgendes funzt:

                    Update peacock_rohdaten
                    Set Kategorisierung_St1 = replace(Kategorisierung_St1, ' ', '')

                    will ich aber mehrere Dinge auf einmal machen, geht es nicht mehr:
                    Update peacock_rohdaten
                    Set Kategorisierung_St1 = replace(Kategorisierung_St1, ' ', ''),
                    Kategorisierung_St1 = replace(Kategorisierung_St1, '/', '')

                    Da meckert er, das Kategorisierung_St1 mehrmals in der Ergebnisspaltenliste vorhanden ist....

                    gruss

                    Kommentar


                    • #11
                      Du solltest die Funktionsaufrufe schachteln:
                      Update peacock_rohdaten Set Kategorisierung_St1
                      = replace(replace(Kategorisierung_St1, '/', ''), ' ', '')
                      mein Sport: mein Frühstück: meine Arbeit:

                      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                      Kommentar


                      • #12
                        jepp, hab ich gemacht, aber wie bekomm ich folgende Zeichen noch weg:

                        `
                        '

                        da bringt er mir immer ne Fehlermeldung

                        Kommentar


                        • #13
                          backslash davor setzen: \' \`
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Kommentar


                          • #14
                            so ??

                            replace(Kategorisierung_St1,'\'','')

                            da meckert er mir ein öfnendes Anführungszeichen an...

                            Kommentar


                            • #15
                              problem gelößt

                              char(39) ...

                              replace(Kategorisierung_St2,'CHAR(39)','')

                              aber trotzdem thx!!

                              Kommentar

                              Lädt...
                              X