2017-05-25 3 views
-1

Ich habe eine Datenbank, wo Office-Benutzer eine "poo Mann Kategorisierung" erstellt haben, indem das administrative Titelfeld mit einer Kategorie vorangestellt. Zum Beispiel haben Sie Datensätze wieMysql Split-String auf Satzzeichen

Applications - When to Apply 
Applications- Fees 
Admission: GPA requirements 
Admissions: Bursar 

Wir eine Kategorie Spalte hinzufügen, und ich will (so nah wie möglich) erhalten alle eindeutigen Benutzer erstellten Kategorien im Titelfeld. Aus den obigen Beispielen sind Applications, Admission und Admissions gut genug.

Wie kann ich eine Abfrage schreiben, um den ersten Teil eines Feldes zurückzugeben, aufgeteilt auf das erste Nicht-Alphanumerische Zeichen?

Antwort

1

AFAIK, dies ist mit keiner der eingebauten MySQL-Funktionen möglich. Es gibt keine Funktion zum Suchen einer Zeichenkette nach einem Zeichen außerhalb einer Menge, z. das erste nicht alphanumerische Zeichen.

Sie können eine gespeicherte Funktion schreiben, indem Sie die Zeichenfolge durchlaufen und SUBSTR() aufrufen. Aber Sie suchen wahrscheinlich besser im Internet nach einer benutzerdefinierten Funktion, die einen String unter Verwendung eines regulären Ausdrucks aufteilen kann.

+1

MariaDB 10.0.5 REGEXP_REPLACE(), REGEXP_INSTR() und REGEXP_SUBSTR() –

+0

@RickJames Schön zu wissen, aber die Frage ist über MySQL, nicht MariaDB. – Barmar

Verwandte Themen