Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

REPLACE

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von heinzeric, 11 September 2013.

  1. heinzeric

    heinzeric Benutzer

    Hallo, was ist an meiner Abfrage falsch?
    Ich bekomme von PHPadmin zwar keine Fehlermeldung, es werden aber auch 0 Datensätze geändert, obwohl davon gibt es eine ganze Menge.
    Hat jemand vielleicht eine Idee?
    Danke heinzeric
     
  2. ukulele

    ukulele Datenbank-Guru

    Bekommst du mit LIKE Ergebnisse zurück?
    Code:
    SELECT    *
    FROM    tabelle
    WHERE    spalte LIKE '%ß%'
     
  3. heinzeric

    heinzeric Benutzer

    Hm, da liegt wohl der Hase im Pfeffer:
    ergbit:
    Aber 'Rügen' habe ich mir aus der Tabelle mit Strg C heraus kopiert.

    Allerdings stelle ich fest, dass die Abfrage mit "LIKE 'Vorpommern'" zum gleichen Ergebnis führt. Beide Zeichenkentten gibt es aber zigfach in der Spalte.
     
  4. ukulele

    ukulele Datenbank-Guru

    Bei LIKE musst du mit % als Platzhalter arbeiten wenn davor und oder dahinter noch weinterer Text steht.

    Ansonsten könnte es auch schlicht ein Problem der Ausgabe sein und in Wahrheit steht dort Rügen in der Tabelle nur die Ausgabe stellt eben Rügen dar. Das würde aber nicht das Vorpommern Problem erklären.
     
  5. heinzeric

    heinzeric Benutzer

    Doch, es erklärt es schon. Denn der Eintrag heißt "Vorpommern-Rügen".
    Die Abfrage:
    ergab:
    Und die Abfrage:
    ergibt:
    Also das Problem wäre schon mal gelöst. Vielen Dank!

    Die Zeichenkette "Rügen" wird auch so in der DB erkannt und in Joomla so auch dargestellt. Dann stellt sich aber die Frage, was ist in der REPLACE-Abfrage falsch?
    Der Syntax ist jedenfalls richtig, sonst würde ich eine FFehlermeldung bekommen. Und selbst wenn ich mal aus der Maskierung rausgehe, und stattdessen
    abfrage, bekomme ich:
    Ich habe natürlich vorher in einem Datensatz Vorpommern durch Varpommern ersetzt.

    Also irgend etwas anderes scheint da nicht zu stimmen.
     
  6. ukulele

    ukulele Datenbank-Guru

    Ich gebe dir recht das sollte Funktionieren. Gibt
    Code:
    SELECT 1,REPLACE('Varpommern', 'Var', 'Vor');
    auch kein Ergebniss oder 1,NULL?
     
  7. heinzeric

    heinzeric Benutzer

    Das Ergebnis ist wie oben. Es wird ja auch kein Datensatz angezeigt. Ich hatte übrigens für die Abfrage in 2 Datensätzen Varpommern eingetragen. Was will mir PHPadmin aber mit dem unteren Teil sagen?
     
  8. ukulele

    ukulele Datenbank-Guru

    Leider (oder eben auch nicht) nutze ich weder PHP MyAdmin noch MySQL :)
     
  9. heinzeric

    heinzeric Benutzer

    Das bringt mich jetzt leider auch nicht weiter...
     
  10. akretschmer

    akretschmer Datenbank-Guru

    Verständlich. Vermutlich hast du ein Update von Mysql gemacht. Mysql hat das tolle Negativ - Feature, übergebene Daten nicht zu prüfen. Hier, ob die Daten im korrekten Zeichensatz vorliegen. Deine jetzige Version kommt daher mit dem, was falsch in der DB ist, nicht zurecht. Man kann da um das Problem mit einigen Tricks drum herum frickeln,aber das ist alles recht schmutzig. Google kennt das Problem und ca. 50000 Lösungsansätze...
     
  11. heinzeric

    heinzeric Benutzer

    Nö, an MySQL liegt es nicht (sosehr ich dem Bill auch immer gern die Schuld geben will).

    Mein Webprovider hat mir die richtige Abfrage mitgeteilt:
    Hab's gleich getestet und es funzt. :)
    Trotzdem danke für deine Anteilnahme.
    Gruß heinzeric
     
  12. ukulele

    ukulele Datenbank-Guru

    Und wo ist jetzt der Unterschied in der Syntax?
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden