MySQL REGEX使用未知长度的SUBSTRING?

时间:2012-09-29 03:37:25

标签: mysql regex

说我有这些数据:

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中使用正则表达式是可能的。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

试试这个:

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

答案 1 :(得分:0)

试试这个:

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

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