#1139 Fehler: Ungültiger Wiederholungsoperand-Operand im regulären Ausdruck
Beim Abfragen einer MySQL-Tabelle mit einem regulären Ausdruck (Regex), um eine bestimmte auszuwählen In den Ergebnissen stoßen Benutzer gelegentlich auf den Fehler „#1139 – Fehler „Wiederholungsoperanden-Operand ungültig“ von regexp."Dieser Fehler weist darauf hin, dass der bereitgestellte reguläre Ausdruck einen ungültigen Wiederholungsoperanden enthält.
Ursache:
Der Fehler tritt auf, weil MySQL Henry Spencers POSIX verwendet. konforme Implementierung regulärer Ausdrücke. Diese Implementierung unterstützt keine nicht gierigen Quantoren wie „?“, die in PCRE (Perl-kompatible reguläre Ausdrücke) verwendet werden. Daher löst die Verwendung von „?“ nach „*“ oder „ “ in einem regulären Ausdruck einen Fehler aus.
Lösung:
Um dieses Problem zu beheben, ersetzen Sie „non -gieriger Quantor „?“ mit dem gierigen Quantifizierer „*“, der weiterhin den notwendigen Abgleich durchführt:
SELECT text FROM `articles` WHERE content REGEXP '.*<img[^>]*src="http://www' ORDER BY date DESC
Zusätzlich, um den Abgleich von Zeichenfolgen wie oder