我用两种方式得到了一个列
-
XXX ZZZ 1.1
XXX - 1.1
所以关键是我只要得到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
我如何继续函数得到只是数字,无论它位于哪里?
我的另一个选择是保持功能不变,并在查询中获得正确的位置,但我也有问题。
解决方案类似于
SELECT SUBSTRING_INDEX("first_middle_last", '_', -1);
摘自https://stackoverflow.com/a/18422739/11298427
Mysql有SUBSTRING_INDEX,你可以使用
CREATE tABLe A (ab varchar(20))
INSERT INTO A VALUES ('XXX ZZZ 1.1'), ('XXX 1.1')
SELECT SUBSTRING_INDEX(ab,' ', -1) FROM A
| SUBSTRING_INDEX(ab,' ', -1) ||:-------------------------- || 1.1 || 1.1 |
db<此处小提琴>此处小提琴>