2012-09-29 16 views
5

Say mam te dane:MySQL REGEX za pomocą SUBSTRING o znanej długości?

First line of text etc etc 
Second line of text here 

chcę wrócić do pierwszej linii, i wiem, jak zaczyna, ale nie jak to się skończy, tylko że kończy z przerwą linii. To, co mam tak daleko:

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

To działa z wyjątkiem +10 nie zawsze będzie +10. Jedynym znacznikiem, który muszę wiedzieć, gdzie się zatrzymać, jest nowa linia, ale nie sądzę, że można użyć wyrażenia regularnego w PODŁOŻUJĄCYM. Czy jest jakiś sposób na zrobienie tego?

+0

chcesz odnieść słowo "pierwsza linia" lub sama linia? –

+0

@JoeGJoseph Pierwsza linia. Twoja odpowiedź poniżej jest nieprawidłowa. – Norse

+0

Mam zaktualizowaną odpowiedź .. plz sprawdź teraz –

Odpowiedz

0

spróbuj tego:

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

Spróbuj tego:

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

podciągu rozpocznie się od jednego, a nie zero. Odjęcie jednego od wyniku LOCATE wyłącza powrót wiersza.

Powiązane problemy