2012-09-29 19 views
5

sagen, dass ich diese Daten haben:MySQL REGEX mit SUBSTRING mit unbekannter Länge?

First line of text etc etc 
Second line of text here 

Ich möchte die erste Zeile zurückzukehren, und ich weiß, wie es geht, aber nicht, wie es endet, nur, dass es mit einem Zeilenumbruch endet. Das ist, was ich habe, so weit:

SELECT 
SUBSTRING(`file`, LOCATE('First line', `file`), LOCATE('First line', `file`)+10) 
FROM `test` 

Das funktioniert außer +10 nicht immer 10 sein. Der einzige Marker, den ich wissen muss, ist eine neue Zeile, aber ich denke nicht, dass es möglich ist, Regex in SUBSTRING zu verwenden. Gibt es eine Möglichkeit, dies zu tun?

+0

Sie möchten das Wort "erste Zeile" oder die erste Zeile selbst abfragen? –

+0

@JoeGJoseph Die erste Zeile selbst. Ihre Antwort unten ist nicht richtig. – Norse

+0

Ich habe meine Antwort aktualisiert .. PLZ jetzt überprüfen –

Antwort

0

versuchen Sie dies:

SELECT 
     SUBSTRING(`file`, LOCATE('First line', `file`), 
      LOCATE("\n",`file`) 
FROM `test` 
0

Try this:

SELECT SUBSTRING(`file`, 1, LOCATE("\n", `file`) - 1) FROM `test`; 

Substring von einem beginnt, nicht Null ist. Durch Subtrahieren von eins vom Ergebnis von LOCATE wird die Zeilenrückgabe ausgeschlossen.