venty: regexp mit klammern in mysql

Hallo!

Ich versuche derzeit einen String mit klammern "String (Noch ein String)" in einer MySQL Abfrage mit REGEXP zu finden. (mysql  Ver 14.14 Distrib 5.1.54, for debian-linux-gnu (i686) using readline 6.2)

Mein SQL:
SELECT titel FROM schiffe WHERE aufloesen REGEXP "Albatros \(Motorsegler\)\r\n";

Dazu muss man noch folgendes wissen: Ich lege die Schiffe die ich in meiner Tabelle habe mit einem "aufloesen" Feld an. Welches ich verwende um den String den ich in einem PHP Array habe durch den Titel des mit oben aufgeführten SQL Code gefundenen Schiffes zu ersetzen.

Meine Frage ist jetzt warum REGEXP trotz der (ich sag jetzt mal) markierten Klammern nichts findet?

Und btw gibt es einen Errorlog von MySQL der mit beim lösen solcher Probleme helfen kann? Eine Meldung die an PHP geht gibt es leider nicht.

MfG Venty

  1. Hallo,

    Ich versuche derzeit einen String mit klammern "String (Noch ein String)" in einer MySQL Abfrage mit REGEXP zu finden.

    warum?

    (mysql  Ver 14.14 Distrib 5.1.54, for debian-linux-gnu (i686) using readline 6.2)

    Mein SQL:
    SELECT titel FROM schiffe WHERE aufloesen REGEXP "Albatros \(Motorsegler\)\r\n";

    ich verstehe nicht, warum Du einen RegExp verwenden willst statt einfach den Gleichheitsoperator oder LIKE.

    Ein paar Beispieldatensätze und das gewünschte Resultat Deiner Abfrage helfen mir, zu verstehen was Dein wirkliches Ziel ist.

    Freundliche Grüße

    Vinzenz

    1. ich verstehe nicht, warum Du einen RegExp verwenden willst statt einfach den Gleichheitsoperator oder LIKE.

      Jetzt wo ich es mit LIKE probiert hab, versteh ich es auch nicht ;) Ich dachte wohl REGEXP ist da praktischer weil ich ja mit Zeilenumbruch suche.

      Danke jedenfalls!

      BTW wofür steht \r ?

      Für jeden mit ähnlichem Problem:
      Ich habe in einer Tabelle ein Textfeld "aufloesen". In diesem habe ich Mögliche Namen eines Schiffes drinnen. Diese möglichen Namen will ich in einem PHP Array ersetzen.

      Beispiel:

        
      $schiffe = array ('name' => 'Albatros (Motorsegler)');  
      // Das Schiff soll jetzt nur Albatros heißen. Das weiß ich weil es so in der DB steht.  
      $query = 'select name from schiffe where aufloesen like "'.$schiffe['name'].'"';  
      ...  
      
      
      1. Hi,

        BTW wofür steht \r ?

        http://de.wikipedia.org/wiki/Zeilenumbruch#ASCII

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?