Stephan: "\n" in DB finden

Hallo,
ich möchte gerne Zeilenumbrüche in einer DB aufspüren.
Das versuche ich mit folgenden SQL Statement:

SELECT * FROM notepad_cb WHERE INSTR(np_text,'\n')>0;

Ich weis, dass es Umbrüche gibt, nur finden tut die obige Abfrage nichts.

Weis jemand warum?

Danke Stephan

  1. Hallo,

    ich möchte gerne Zeilenumbrüche in einer DB aufspüren.
    Das versuche ich mit folgenden SQL Statement:

    SELECT * FROM notepad_cb WHERE INSTR(np_text,'\n')>0;

    Ich weis, dass es Umbrüche gibt, nur finden tut die obige Abfrage nichts.

    Hast Du es mal mit einem Backslash versucht?
    Wenn das Escape-Zeichen für die Schnittstelle der Backslash ist, dann musst Du den nicht nochmal escapen.

    LG
    Chris

    1. Hallo Chris,
      wenn ich

      SELECT '\n';

      eingebe, kommt '\n' raus.
      Bei

      SELECT '/\n';

      hingegen nur '/.'.

      1. Hallo,

        SELECT '\n';

        eingebe, kommt '\n' raus.
        Bei

        Du sollst auch nur Select .... '\n' übergeben.

        Wie übergibst Du das denn? Frontend, PHP, Perl?
        Was für eine Datenbank ist es?
        Wie sind die Umbrüche in die Datenbank hineingekommen?

        LG
        Chris

        1. Du sollst auch nur Select .... '\n' übergeben.

          Dann bekomme ich '.' zurück.

          Wie übergibst Du das denn? Frontend, PHP, Perl?

          Ich teste es gerade mit dem MySQL Query Browser.

          Was für eine Datenbank ist es?

          MySQL 5.sonstwas

          Wie sind die Umbrüche in die Datenbank hineingekommen?

          Per HTML textarea.

          LG
          Chris

          1. Hallo Stephan,

            Wie sind die Umbrüche in die Datenbank hineingekommen?
            Per HTML textarea.

            ... und zur Verarbeitung auf Serverseite welche Sprache?
            Sind die Umbrüche vor dem Eintrag escaped worden?

            Wenn mämlich z.B. PHP benutzt wird, dann könnte sie bereits von PHP mit addslashes() beghandelt worden sein (-> Magic Quotes GPC).

            Das ist schlecht, denn eigentlich muss jeder String mit mysql_real_escape_string() behandelt werden. Dafür muss er aber im Rohformat, also ohne die PHP-Backslashes, vorliegen.

            Wenn Du die Daten schon beim Eintrag verkurbelt hast, dann kannst Du sie auch nicht wiederfinden. Dann steht nämlich in der Datenbank tatsächlich die Zeichenfolge '\n' drin und nicht das Newline-Zeichen selber.

            LG
            Chris