2017-07-11 2 views
0

Ich habe eine seltsame Datenbank mit einem Textfeld, das eine variable Anzahl von Zeilen Text enthält. Was konsistent ist, ist, dass die Daten, die ich brauche, entweder eine 4-stellige Zeichenfolge in der zweiten Zeile jedes Feldes sind.Wie wählt man eine Zeichenfolge aus der zweiten Zeile eines Textfelds mysql

ein Beispiel für den Text in einem Feld unterhalb

Smoke That Thunders R 
44' Zambia 2016 

Was ich brauche, ist diese „44'“ -Teil, die ersten 4 Zeichen der zweiten Zeile nur.

Ich brauche select diese 4-stellige Zeichenfolge als neue Spalte. Ist das möglich? Von dem, was ich sehen kann, wäre substring(str, pos, len) ideal, aber wie stellen Sie die Startposition der substring Funktion auf der zweiten Zeile ein?

Antwort

2

können Sie die neue Linie \n als Teilkette verwenden und LOCATE es zuerst, zum Beispiel:

SELECT LOCATE('\n', column_name) 
FROM table; 

Dies gibt Ihnen den Index des ersten Auftretens von \n (neue Zeile), können Sie dann verwenden, in SUBSTRING, zB:

SELECT SUBSTRING(column_name, LOCATE('\n', column_name), 4) 
FROM table; 

Hier ist die Dokumentation für LOCATE und SUBSTRING.

aktualisieren

Sie können mit Kombination von neuen Zeile und Wagenrücklauf versuchen (das heißt \r\n), wenn neue Linie alleine funktioniert nicht.

+0

Ich kam langsam zu dieser Lösung, LOCATE ist ordentlich. – BusinessPlanQuickBuilder

+0

Vielen Dank für die Antwort, ich hatte nicht 'LOCATE' dafür in Betracht gezogen, Ihre Antwort gab mir ein Ergebnis von Leerzeilen, also habe ich das stattdessen versucht und es hat funktioniert! 'SELECT SUBSTRING (Spaltenname, LOCATE ('\ n', Spaltenname), 4) FROM Tabelle;' – Daniel

+0

@Daniel danke für das Feedback, ich habe die Antwort aktualisiert. –

Verwandte Themen