【问题标题】:MySQL REGEX using SUBSTRING with uknown length?MySQL REGEX 使用未知长度的 SUBSTRING?
【发布时间】:2012-09-20 21:52:39
【问题描述】:

假设我有这些数据:

First line of text etc etc
Second line of text here

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

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

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

【问题讨论】:

  • 您要检索“第一行”这个词还是第一行本身?
  • @JoeGJoseph 第一行本身。你下面的答案不正确。
  • 我已经更新了我的答案.. 请立即查看

标签: mysql regex


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    试试这个:

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 2017-07-02
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      相关资源
      最近更新 更多