Sie benötigen MySQL RLIKE Expression in bestimmten Zeichen bestimmte Zeichenfolgen auszuschließen Endung

StackOverflow https://stackoverflow.com/questions/2496908

  •  21-09-2019
  •  | 
  •  

Frage

Also ich habe mit RLIKE arbeitet einige Daten in einer neuen Anwendung zu ziehen und vor allem es zu genießen.

Bisher Ich habe RLIKE Anfragen wurden unter Verwendung von 3 Arten von Ergebnissen zurückzukehren (Dateien, Verzeichnisse und alles).

Die Abfragen (und Beispielergebnisse) folgen:

**All**:

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+$' ORDER BY obj_namespace

user/test/public/a-test/.comment
user/test/public/a-test/.delete
user/test/public/directory/
user/test/public/directory/image.jpg
user/test/public/index
user/test/public/site-rip
user/test/public/site-rip2
user/test/public/test-a
user/test/public/widget-test

**Files**:

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+[-0-9a-z_.]+$' ORDER BY obj_namespace


user/test/public/a-test/.comment
user/test/public/a-test/.delete
user/test/public/directory/image.jpg
user/test/public/index
user/test/public/site-rip
user/test/public/site-rip2
user/test/public/test-a
user/test/public/widget-test

**Directories**:

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+/$' ORDER BY obj_namespace

user/test/public/directory/

Das funktioniert gut für die oben genannten drei Grundszenarien aber unter bestimmten Situationen werde ich spezielle ‚Suffixe‘ werde, einschließlich ich mag aus den Ergebnissen der Abfragen ausgeschlossen werden (ohne zu PHP-Funktionen zurückgreifen zu müssen, es zu tun).

Ein gutes Beispiel für eine solche Zeichenfolge wäre:

user/test/public/a-test/.delete

Diese Daten (es gibt mehr Reihen dann nur obj_namespace) gilt als gelöscht und in den Dateien und Alle Abfragen vom Typ ich es mag innerhalb des Ausdrucks weggelassen wird wenn möglich.

Das Gleiche gilt für die /.comments und alle solche Meta-Daten immer im gleichen Format sein:

/.[sometext]

hatte ich gehofft, diese Funktion zu nutzen ausgiebig durch meine Anwendung, so hoffe ich, es könnte eine sehr einfache Antwort sein. ( Kreuze Finger )

Wie auch immer, dank wie immer für jeden / alle Antworten und Feedback.

War es hilfreich?

Lösung

Sounds wie Sie könnten nur eine weitere Bedingung für jede Abfrage hinzufügen:

... AND obj_namespace NOT RLIKE '/[.][a-z]+$' ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top