5

假设我有这些数据:

First line of text etc etc
Second line of text here

我想返回第一行,我知道它是如何开始的,但不知道它是如何结束的,只是它以换行符结束。这是我到目前为止所拥有的:

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

这有效,但+10并不总是+10。我必须知道在哪里停止的唯一标记是新行,但我认为不可能在 SUBSTRING 中使用正则表达式。有没有办法做到这一点?

4

2 回答 2

0

尝试这个:

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

子字符串从一开始,而不是零。从 LOCATE 的结果中减去 1 会排除行返回。

于 2012-11-24T01:20:44.483 回答
0

尝试这个:

SELECT 
      SUBSTRING( `file`, LOCATE('First line', `file`),
          LOCATE("\n",`file`) 
 FROM `test`
于 2012-09-29T03:42:17.773 回答