Wenn einer String-Funktion ein Binär-String als Argument übergeben wird, ist der Ergebnis-String ebenfalls ein Binär-String. Eine Zahl, die in einen String konvertiert wird, wird als Binär-String behandelt. Dies betrifft nur Vergleiche.
Wenn ein Ausdruck in einem String-Vergleich die Groß-/Kleinschreibung unterscheidet, dann wird der Vergleich ebenfalls mit Unterscheidung der Groß-/Kleinschreibung durchgeführt.
            
            expr LIKE
            pat [ESCAPE
            'escape_char']
            Mustervergleich unter Verwendung eines einfachen
            SQL-Vergleichs mit regulären Ausdrücken. Gibt
            1 (TRUE) oder
            0 (FALSE) zurück.
            Wenn entweder expr oder
            pat NULL sind,
            ist das Ergebnis NULL.
          
Das Muster muss kein literaler String sein. Es kann beispielsweise auch als String-Ausdruck oder als Tabellenspalte angegeben werden.
            Gemäß dem SQL-Standard führt LIKE die
            Überprüfung auf Zeichenbasis durch, kann also Ergebnisse
            erzeugen, die sich von denen des Vergleichsoperators
            = unterscheiden:
          
mysql>SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci;+-----------------------------------------+ | 'ä' LIKE 'ae' COLLATE latin1_german2_ci | +-----------------------------------------+ | 0 | +-----------------------------------------+ mysql>SELECT 'ä' = 'ae' COLLATE latin1_german2_ci;+--------------------------------------+ | 'ä' = 'ae' COLLATE latin1_german2_ci | +--------------------------------------+ | 1 | +--------------------------------------+
            Bei LIKE können Sie die folgenden beiden
            Jokerzeichen im Muster verwenden:
          
| Zeichen | Beschreibung | 
% | 
entspricht einer beliebigen Anzahl von Zeichen (einschließlich null Zeichen). | 
_ | 
entspricht genau einem Zeichen. | 
mysql>SELECT 'David!' LIKE 'David_';-> 1 mysql>SELECT 'David!' LIKE '%D%v%';-> 1
            Um auf literale Instanzen eines Jokerzeichens zu prüfen,
            stellen Sie ihm ein Escape-Zeichen voran. Wenn Sie das
            Escape-Zeichen nicht angeben, wird
            ‘\’ angenommen.
          
| String | Beschreibung | 
\% | 
entspricht einem ‘%’-Zeichen. | 
\_ | 
entspricht einem ‘_’-Zeichen. | 
mysql>SELECT 'David!' LIKE 'David\_';-> 0 mysql>SELECT 'David_' LIKE 'David\_';-> 1
            Um ein anderes Escape-Zeichen anzugeben, verwenden Sie die
            ESCAPE-Klausel:
          
mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|';
        -> 1
            Die Escape-Sequenz sollte leer oder genau ein Zeichen lang
            sein. Ab MySQL 5.1.2 darf die Sequenz nicht leer sein, wenn
            der SQL-Modus NO_BACKSLASH_ESCAPES
            aktiviert wurde.
          
Die folgenden beiden Anweisungen veranschaulichen, dass die Groß-/Kleinschreibung bei String-Vergleichen nicht unterschieden wird, sofern nicht einer der Operanden ein Binär-String ist:
mysql>SELECT 'abc' LIKE 'ABC';-> 1 mysql>SELECT 'abc' LIKE BINARY 'ABC';-> 0
            In MySQL ist LIKE für numerische
            Ausdrücke zulässig. (Dies stellt eine Erweiterung zu
            LIKE nach SQL-Standard dar.)
          
mysql> SELECT 10 LIKE '1%';
        -> 1
            Hinweis: Weil MySQL die
            C-Escape-Syntax in Strings verwendet (z. B.
            ‘\n’ zur Darstellung eines
            Zeilenwechsels), müssen Sie jedes
            ‘\’, das Sie in
            LIKE-Strings verwenden, verdoppeln. Um
            beispielsweise nach ‘\n’ zu
            suchen, geben Sie es als
            ‘\\n’ an. Um nach
            ‘\’ zu suchen, geben Sie es
            als ‘\\\\’ an; dies ist
            erforderlich, weil Backslashs einmal vom Parser und dann
            noch einmal bei Durchführung des Mustervergleichs
            umgewandelt werden – so bleibt für den Vergleich ein
            einzelner Backslash übrig.
          
            
            expr NOT LIKE
            pat [ESCAPE
            'escape_char']
            Dies ist das Gleiche wie NOT
            (.
          expr LIKE
            pat [ESCAPE
            'escape_char'])
            
            ,
            expr NOT REGEXP
            patexpr NOT RLIKE
            pat
            Dies ist das Gleiche wie NOT
            (.
          expr REGEXP
            pat)
            
            
            
            
            expr REGEXP
            patexpr RLIKE
            pat
            Führt einen Mustervergleich eines String-Ausdrucks
            expr mit einem Muster
            pat durch. Das Muster kann ein
            erweiterter regulärer Ausdruck sein. Die Syntax für
            reguläre Ausdrücke wird in Anhang G, Beschreibung der MySQL-Syntax für reguläre Ausdrücke,
            beschrieben. Gibt 1 zurück, wenn
            expr mit
            pat übereinstimmt; andernfalls
            wird 0 zurückgegeben. Wenn entweder
            expr oder
            pat NULL sind,
            ist das Ergebnis auch NULL.
            RLIKE ist ein Synonym für
            REGEXP, welches aus Gründen der
            mSQL-Kompatibilität vorhanden ist.
          
Das Muster muss kein literaler String sein. Es kann beispielsweise auch als String-Ausdruck oder als Tabellenspalte angegeben werden.
            Hinweis: Weil MySQL die
            C-Escape-Syntax in Strings verwendet (z. B.
            ‘\n’ zur Darstellung eines
            Zeilenwechsels), müssen Sie jedes
            ‘\’, das Sie in
            REGEXP-Strings verwenden, verdoppeln.
          
            REGEXP unterscheidet die
            Groß-/Kleinschreibung nur dann, wenn sie mit Binär-Strings
            verwendet wird.
          
mysql>SELECT 'Monty!' REGEXP 'm%y%%';-> 0 mysql>SELECT 'Monty!' REGEXP '.*';-> 1 mysql>SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';-> 1 mysql>SELECT 'a' REGEXP 'A', 'a' REGEXP BINARY 'A';-> 1 0 mysql>SELECT 'a' REGEXP '^[a-d]';-> 1
            REGEXP und RLIKE
            verwenden zur Erkennung des Typs eines Zeichens den
            aktuellen Zeichensatz. Der Standardzeichensatz ist
            latin1 (cp1252 West European).
            Warnung: Diese Operatoren
            sind nicht multibytesicher.
          
            STRCMP() gibt 0
            zurück, wenn die Strings identisch sind,
            -1, wenn das erste Argument entsprechend
            der aktuellen Sortierreihenfolge kleiner ist als das zweite,
            und 1 in jedem anderen Fall.
          
mysql>SELECT STRCMP('text', 'text2');-> -1 mysql>SELECT STRCMP('text2', 'text');-> 1 mysql>SELECT STRCMP('text', 'text');-> 0
            STRCMP() verwendet zur Durchführung von
            Vergleichsoperationen den aktuellen Zeichensatz. Insofern
            wird die Groß-/Kleinschreibung bei Vergleichen
            standardmäßig nicht unterschieden, sofern nicht mindestens
            einer der Operanden ein Binär-String ist.
          
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.
