Kapitel 12. Funktionen für die Benutzung in SELECT– und WHERE-Klauseln
Inhaltsverzeichnis12.1. Operatoren[+/-]12.2. Ablaufsteuerungsfunktionen12.3. String-Funktionen[+/-]12.4. Numerische Funktionen[+/-]12.5. Datums- und Zeitfunktionen12.6. Welchen Kalender benutzt MySQL?12.7. MySQL-Volltextsuche[+/-]12.8. Cast-Funktionen und Operatoren12.9. XML-Funktionen12.10. Weitere Funktionen[+/-]12.11. Funktionen und Modifizierer für die Verwendung in GROUP BY-Klauseln[+/-]
Ausdrücke können an mehreren Stellen in MySQL-Anweisungen verwendet werden, so etwa in den ORDER BY– oder HAVING-Klauseln von SELECT-Anweisungen, in der WHERE-Klausel einer SELECT-, DELETE– oder UPDATE-Anweisung oder in SET-Anweisungen. Ausdrücke können unter Verwendung von literalen Werten, Spaltenwerten, NULL, integrierten Funktionen, gespeicherten Funktionen, benutzerdefinierten Funktionen und Operatoren geschrieben werden. Dieses Kapitel beschreibt die Funktionen und Operatoren, die für das Formulieren von Ausdrücken in MySQL zulässig sind. Hinweise zum Schreiben gespeicherter und benutzerdefinierter Funktionen finden Sie in Kapitel 19, Gespeicherte Prozeduren und Funktionen, und Abschnitt 26.3, „Hinzufügen neuer Funktionen zu MySQL“.
Ein Ausdruck, der NULL enthält, erzeugt immer einen NULL-Wert, sofern in der Dokumentation zur betreffenden Funktion bzw. zum Operator nichts anderes angegeben ist.
Hinweis: Standardmäßig darf kein Whitespace zwischen einem Funktionsnamen und der ihm folgenden Klammer stehen. Auf diese Weise kann der MySQL-Parser zwischen Funktionsaufrufen und Referenzierungen von Tabellen oder Spalten unterscheiden, die den gleichen Namen wie die Funktion haben. Die Funktionsargumente umgebenden Leerzeichen sind hingegen zulässig.
Sie können den MySQL Server anweisen, Leerzeichen nach Funktionsnamen zu akzeptieren, indem Sie beim Start die Option --sql-mode=IGNORE_SPACE angeben. (Siehe auch Abschnitt 5.2.5, „Der SQL-Modus des Servers“.) Einzelne Clientprogramme können dieses Verhalten anfordern, indem sie die Option CLIENT_IGNORE_SPACE für mysql_real_connect() angeben. In beiden Fällen werden alle Funktionsnamen zu reservierten Wörtern.
Um Weitschweifigkeiten zu verhindern, stellen die meisten Beispiele in diesem Kapitel die Ausgabe von mysql in gekürzter Form dar. Die folgende Ausgabe zeigt das vollständige Format:
mysql> SELECT MOD(29,9);
+-----------+
| mod(29,9) |
+-----------+
| 2 |
+-----------+
1 rows in set (0.00 sec)
Stattdessen benutzen wir jedoch folgende Ausgabe:
mysql> SELECT MOD(29,9);
-> 2
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.