gpt4 book ai didi

MySQL 如何从 varchar 列中获取精确的整数值

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

我有一个名为“Costdetails”的表。

有一列名为'cost',它是一个VARCHAR 列。它可以是任何东西,如下所示。

Cost ssss
20000 - $
Rs - 1000/-
10000 Rupees etc.

我想从这个 varchar 列中取出确切的数量(Ex: 1000, 20000)。在谷歌上尝试了这个,我得到了一个查询,然后我尝试了这个查询。

SELECT cost
FROM Costdetails
WHERE (cost REGEXP '^[0-9]' or cost REGEXP '[0-9]^' or cost REGEXP '[0-9]');


Output :

Rs-1000/-
10000 - $
$ 10000

此查询帮助我获取具有整数值的行。但是想要从列中删除多余的内容(输出:喜欢 1000,不喜欢 Rs-1000/-)。

任何想法,提前致谢!!!

最佳答案

您可以使用一个函数来完成您的查询。例如:-

 SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS digits;
DELIMITER |
CREATE FUNCTION digits( str CHAR(32) ) RETURNS CHAR(32)
BEGIN
DECLARE i, len SMALLINT DEFAULT 1;
DECLARE ret CHAR(32) DEFAULT '';
DECLARE c CHAR(1);

IF str IS NULL
THEN
RETURN "";
END IF;

SET len = CHAR_LENGTH( str );
REPEAT
BEGIN
SET c = MID( str, i, 1 );
IF c BETWEEN '0' AND '9' THEN
SET ret=CONCAT(ret,c);
END IF;
SET i = i + 1;
END;
UNTIL i > len END REPEAT;
RETURN ret;
END |
DELIMITER ;

SELECT digits(cost) from Costdetails;

关于MySQL 如何从 varchar 列中获取精确的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39445295/

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