无法理解为什么这个MySQL功能在12年之后无法正常工作

时间:2014-04-15 22:06:54

标签: mysql phpmyadmin

出于某种原因,以下mySQL函数只能为我提供12位

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

SELECT SPLIT_STR(column, ",", **2**) from table

我有一个循环运行以自动递增此函数,因此我可以覆盖包含超过18个以逗号分隔的值的大字段。一旦我在此函数中的pos参数上击中13,我会收到一个截止的部分值。 13之后我收到空值。可能导致这种情况的任何想法?也许该行的某些设置会影响这个?

1 个答案:

答案 0 :(得分:0)

看起来这是varchar的一个问题。我之前已将它们设置为255,但我发现我有包含360个字符的行,我将它们设置为1000并修复了问题。