Mysql 如何从文本字段的第二行中选择字符串

Mysql 如何从文本字段的第二行中选择字符串,mysql,Mysql,我有一个奇怪的数据库,有一个文本字段,其中包含可变数量的文本行。一致的是,我需要的数据是每个字段第二行的一个4个字符的字符串 字段中的文本示例如下所示 Smoke That Thunders R 44' Zambia 2016 我需要的是这个“44””部分,仅第二行的前4个字符 我需要选择此4个字符的字符串作为新列。这可能吗?据我所见,子字符串(str,pos,len)非常理想,但是如何在第二行上设置子字符串函数的起始位置?您可以使用新行\n作为子字符串,然后首先定位它,例如: SELECT

我有一个奇怪的数据库,有一个文本字段,其中包含可变数量的文本行。一致的是,我需要的数据是每个字段第二行的一个4个字符的字符串

字段中的文本示例如下所示

Smoke That Thunders R
44' Zambia 2016
我需要的是这个“
44”
”部分,仅第二行的前4个字符


我需要
选择此4个字符的字符串作为新列。这可能吗?据我所见,
子字符串(str,pos,len)
非常理想,但是如何在第二行上设置
子字符串
函数的起始位置?

您可以使用新行
\n
作为子字符串,然后
首先定位它,例如:

SELECT LOCATE('\n', column_name)
FROM table;
这将为您提供
\n
(即新行)首次出现的索引,然后您可以将其用于
子字符串,例如:

SELECT SUBSTRING(column_name, LOCATE('\n', column_name), 4)
FROM table;
这是和的文档

更新


如果新行单独不起作用,您可以尝试将新行与回车符组合使用(即
\r\n
)。

您可以使用新行
\n
作为子字符串,并
首先定位它,例如:

SELECT LOCATE('\n', column_name)
FROM table;
这将为您提供
\n
(即新行)首次出现的索引,然后您可以将其用于
子字符串,例如:

SELECT SUBSTRING(column_name, LOCATE('\n', column_name), 4)
FROM table;
这是和的文档

更新


如果新行单独不起作用,您可以尝试将新行和回车(即
\r\n
)组合使用。

我正在慢慢地找到这个解决方案,定位是整洁的。感谢您的回复,我没有考虑过
定位
,您的回答是给我一个空行的结果,所以我尝试了这个方法,它成功了<代码>从表中选择子字符串(列名称,定位('\n',列名称),4)
@Daniel谢谢你的反馈,我已经更新了答案。我正在慢慢地找到这个解决方案,定位很简单。谢谢你的回复,我没有考虑
LOCATE
,你的答案给了我一个空白行的结果,所以我尝试了这个方法,效果很好<代码>从表中选择子字符串(列名称,定位('\n',列名称),4)@Daniel谢谢你的反馈,我已经更新了答案。