norman: PERL/PHP/MYSQL - Regulärer Ausdruck

hallo zusammen,

die mechanik für reguläre ausdrücke ist bei perl/php/mysql ganz ähnlich. ich suche einen reg. ausdruck für mysql der auf eine unterschiedliche anzahl von punkten (".") passt.

z.b.:
cd.interpret.album.song
cd.interpret.album
cd.interpret

-> suche alle einträge, die einen punkt enthalten: "cd.interpret"
-> suche alle einträge, die zwei punkte enthalten: "cd.interpret.album"
...

gruß,
norman

  1. Hi Norman,

    ohne Garantie:
    SELECT * FROM tabelle WHERE eintrag LIKE '%.%'; -> Für 1 Punkt
    SELECT * FROM tabelle WHERE eintrag LIKE '%.%.%'; -> Für 2 Punkte

    Bye
    Patrick

    1. hi,

      SELECT * FROM tabelle WHERE eintrag LIKE '%.%';

      würde das gleiche ergebnis liefern wie

      SELECT * FROM tabelle WHERE eintrag LIKE '%.%.%';

      oder wie

      SELECT * FROM tabelle WHERE eintrag LIKE '%.%.%.%';

      gruß
      norman

      Hi Norman,

      ohne Garantie:
      SELECT * FROM tabelle WHERE eintrag LIKE '%.%'; -> Für 1 Punkt
      SELECT * FROM tabelle WHERE eintrag LIKE '%.%.%'; -> Für 2 Punkte

      Bye
      Patrick

      1. Morgen Norman.

        SELECT * FROM tabelle WHERE eintrag LIKE '%.%';
        würde das gleiche ergebnis liefern wie
        SELECT * FROM tabelle WHERE eintrag LIKE '%.%.%';

        Klar, weil '%' _jedes_ Zeichen repräsentiert, also auch einen Punkt. Übrigens, das hatte ich gestern abend vergessen zu fragen. Du bist dir sicher, dass deine Datenbankstruktur optimal ist? Wäre es nicht klüger, die drei Felder "cd", "interpret" und "album" zu definieren, statt die drei Werte durch einen Punkt getrennt in ein Feld zu schreiben? Dann bräuchtest du m.E. auch die RegEx-Abfrage nicht.

        Freundschaft!
        Siechfred

        --
        Punk's not dead: http://www.siechfreds-welt.de/badreligion.shtml
        Dankbarkeit, man spürt sie ja so selten bei den Menschen, und gerade die Dankbarsten finden nicht den Ausdruck dafür, sie schweigen verwirrt, sie schämen sich und tun manchmal stockig, um ihr Gefühl zu verbergen. (Stefan Zweig)
  2. Hallo Norman.

    die mechanik für reguläre ausdrücke ist bei perl/php/mysql ganz ähnlich.

    Der Vollständigkeit halber:
    http://dev.mysql.com/doc/mysql/de/Regexp.html
    http://dev.mysql.com/doc/mysql/de/String_comparison_functions.html

    ich suche einen reg. ausdruck für mysql der auf eine unterschiedliche anzahl von punkten (".") passt.

    Unter Berücksichtigung des oben stehenden Links würde ich es so machen (ob es so geht, musst du ausprobieren):

    -> suche alle einträge, die einen punkt enthalten: "cd.interpret"

    RegExp: '^\w+.\w+$'

    -> suche alle einträge, die zwei punkte enthalten: "cd.interpret.album"

    RegExp: '^\w+.\w+.\w+$'

    Freundschaft!
    Siechfred

    --
    Punk's not dead: http://www.siechfreds-welt.de/badreligion.shtml
    Dankbarkeit, man spürt sie ja so selten bei den Menschen, und gerade die Dankbarsten finden nicht den Ausdruck dafür, sie schweigen verwirrt, sie schämen sich und tun manchmal stockig, um ihr Gefühl zu verbergen. (Stefan Zweig)