0
我在一个数据库表中有一些奇怪的字符串有点问题。 我需要将这样的字符串示例拆分为INT数组,或者将其拆分为INT循环或某物。在没有自己的函数的MySQL中进行SQL拆分
这必须在 '平时' 的MySQL来完成(无功能,声明等等 - 只有SELECT语句+内置函数一样REPLACE()
,SUBSTRING()
)
524;779;
559;;
;559;
411;760;;
+等;
这样的意图是否可以执行?
我在一个数据库表中有一些奇怪的字符串有点问题。 我需要将这样的字符串示例拆分为INT数组,或者将其拆分为INT循环或某物。在没有自己的函数的MySQL中进行SQL拆分
这必须在 '平时' 的MySQL来完成(无功能,声明等等 - 只有SELECT语句+内置函数一样REPLACE()
,SUBSTRING()
)
524;779;
559;;
;559;
411;760;;
+等;
这样的意图是否可以执行?
如果这是一次运行一次操作,将您的数据转换为理智的格式,您可以从this answer中获得想法,并将其扩展到一个字符串中的最大ids数。
SQL Fiddle上的示例。
SELECT DISTINCT id, val
FROM (
SELECT id, substring_index(substring_index(`val`,';',-1),';',1) AS val FROM tab
UNION ALL
SELECT id, substring_index(substring_index(`val`,';',-2),';',1) FROM tab
UNION ALL
SELECT id, substring_index(substring_index(`val`,';',-3),';',1) FROM tab
UNION ALL
SELECT id, substring_index(substring_index(`val`,';',-4),';',1) FROM tab
UNION ALL
SELECT id, substring_index(substring_index(`val`,';',-5),';',1) FROM tab
) x
WHERE val <> ''
ORDER BY id
你的表格结构是什么?你需要的结果是什么?\ – Alex
我需要通过sptlitting从字段'some_field'中检索每个INT VARCHAR(50),其中包含这些示例 - 在每个 – Rafcik
Plz指定了您想要的结果之后用';拼接INTS。 –