【发布时间】:2021-10-23 19:09:28
【问题描述】:
我的专栏有两种方式中的任何一种
-
XXX ZZZ 1.1
-
XXX 1.1
所以重点是我只需要获取 de 1.1,无论数据以何种方式(1 或 2)来。
我得到了 SQL 中的下一个函数来分割数据,当它找到一个空白时,就像
FUNCTION `ddbb`.`function`(
`x` VARCHAR(255),
`delim` VARCHAR(12),
`pos` INT
) RETURNS varchar(255) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci
READS SQL DATA
BEGIN
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
END
我如何继续该功能以获取其所在位置的号码?
我的另一个选择是保持功能不变,并在查询中获得正确的位置,但我也遇到了问题。
【问题讨论】:
-
您使用的是哪个 dbms? (上面的代码是特定于产品的。)
-
您需要使用空格作为分隔符,您当前的分隔符是一个空字符串。我会先反转该值,看到您正在寻找最后一个,在反转您匹配第一个空格后,然后反转结果。
-
我正在使用mysql
-
您的函数也没有动词作为名称,而是您将其称为
table,这根本无法解释其意图。请给您的函数起一个有意义的名称并更新您的帖子以使用 mysql 标记 -
@ChrisSchaller 感谢您的想法。我真的很感激。我也很感激你试图让人们更好地标记他们的问题。但是谈论函数名称是过分的。正如你可以理解的那样,我并没有在论坛中提供每一个细节。无论如何,谢谢你的帮助。