Die Datenbank, mit der ich arbeite, speichert JSON-Einträge in LONGTEXT-Datentypen. Ich möchte Einträge abhängig von den JSON-Daten auswählen können. Hier einige Beispieldaten:
%Vor%Ich möchte also Daten auswählen, die "4d1dfd2e-7bc1-4303-9c8c-90856e918bb9" enthalten: {"item": {"0": "11"}} Durch Ausfiltern des Whitespace (Tabulatoren, Leerzeichen, neue Zeilen) benutze die REGEXP-Funktion, ich habe dies vergeblich versucht:
%Vor%Der Regex-Test funktioniert mit Rubular und Regexpal.com, aber MYSQL scheint den \ s * Ausdruck nicht zu mögen. Hat jemand eine bessere Lösung dafür?
Es scheint, dass MySQL die \s
-Notation in Regexes nicht unterstützt, nur die [[:space:]]
-Notation (wobei [:space:]
in einer Zeichenklasse "beliebiges Leerzeichen" bedeutet).
Übrigens, wenn Sie tun brauchen einen umgekehrten Schrägstrich - zum Beispiel, wenn Sie ein literales Sternchen \*
benötigen - müssen Sie tatsächlich den umgekehrten Schrägstrich (zB \*
), wie in < a href="http://dev.mysql.com/doc/refman/5.6/en/regexp.html"> §12.5.2 "Reguläre Ausdrücke" des MySQL 5.6 Referenzhandbuch :
Hinweis
Da MySQL die C-Escape-Syntax in Strings verwendet (z. B. "\n
" für das Newline-Zeichen), müssen Sie jedes "\
", das Sie in IhrenREGEXP
-Zeichenfolgen verwenden, verdoppeln.