gpt4 book ai didi

MySQL - 多个点之间的SUBSTRING_INDEX

转载 作者:行者123 更新时间:2023-11-29 13:28:28 25 4
gpt4 key购买 nike

我知道这远非最佳的做事方式,但这是很少需要做的事情,所以我不想考虑修改数据库/应用程序。

我有一个数据库字段DataField (BLOB),其中包含以下格式的数据字符串:

"1,,0,13424556,item,something"

但是该字段可能包含多个实例(有时 4 或 5 个实例),例如

"1,,0,13424556,item,something\r\n"1,,1,12345888,itemOther,somethingElse"

我需要找到一种方法(在 MySQL 中)将其拆分以单独显示每个项目(在它自己的列中)。但无法找到一种方法来做到这一点。 (事实上​​,如果可能的话,我只需要每个数字字符串(例如

13424556

))

我有以下查询作为开始:

SELECT
SUBSTRING_INDEX(`DataField`,'\r\n',1),
SUBSTR(`DataField`, LOCATE('\r\n',`DataField`)+2, (CHAR_LENGTH(`DataField`) - LOCATE('\r\n',REVERSE(`DataField`) )- LOCATE('\r\n',`DataField`))) AS e2
FROM table3;

如果只有两个项目,则此方法有效,但如果有 3 个或更多项目,则无效。

如果有人可以对此进行扩展,我将非常感激。

最佳答案

这可能会让您朝着正确的方向前进:

select 
substring_index(
substring_index(case when `DataField` like "%\r\n" then `DataField` else concat(`DataField`,"\r\n") end,
"\r\n",2),
"\r\n",-1)
from table3;

这将返回第二个项目。将 2 替换为 3 以获得第三个,4 替换为第四个,依此类推。

你可能需要稍微调整一下......

关于MySQL - 多个点之间的SUBSTRING_INDEX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19815104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com