2012-09-29 20 views
5

Nói rằng tôi có dữ liệu này:MySQL REGEX bằng cách sử dụng SUBSTRING với chiều dài uknown?

First line of text etc etc 
Second line of text here 

Tôi muốn quay trở lại dòng đầu tiên, và tôi biết làm thế nào nó bắt đầu, nhưng không phải là cách nó kết thúc, duy nhất mà nó kết thúc bằng một ngắt dòng. Đây là những gì tôi có cho đến nay:

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

này hoạt động trừ +10 sẽ không phải luôn luôn 10. Điểm đánh dấu duy nhất tôi phải biết dừng ở đâu là một dòng mới, nhưng tôi không nghĩ rằng có thể sử dụng regex trong SUBSTRING. Có cách nào để làm việc này không?

+0

bạn muốn thử lại từ 'dòng đầu tiên' hoặc dòng firt? –

+0

@JoeGJoseph Dòng đầu tiên. Câu trả lời của bạn bên dưới không đúng. – Norse

+0

Tôi đã cập nhật câu trả lời của mình .. plz kiểm tra ngay bây giờ –

Trả lời

0

thử điều này:

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

Hãy thử điều này:

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

xâu bắt đầu từ một, không phải bằng không. Trừ một từ kết quả của LOCATE không bao gồm trả về dòng.

Các vấn đề liên quan