gpt4 book ai didi

mySQL 设置了一个没有特殊字符的 varchar

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

我使用 mySQL 作为 DBMS,我的表中有这些行:

product_name | product_code | prod_type
prod1@00X | 1 |
@prod2@00X | 2 |
+prod3@@00X | 3 |

我想设置 prod_type = 没有特殊字符的 product_name。

=> prod_type

prod100X
prod200X
prod300X

(除了'@'和'+'我还可以有其他特殊字符)

我该怎么做?

最佳答案

方法一:

您可以使用 REPLACE()删除mysql中特殊字符的方法,不知道效率高不高。但它应该有效。

喜欢下面:

SELECT Replace(Replace(product_name,'@',''),'+','')  as prod_type
From Table1

Fiddle Demo

方法二:

如果你有所有其他特殊字符,那么使用这个 ( Source )

-- ---------------------------- 
-- Function structure for `udf_cleanString`
-- ----------------------------
DROP FUNCTION IF EXISTS `udf_cleanString`;
DELIMITER ;;
CREATE FUNCTION `udf_cleanString`(`in_str` varchar(4096)) RETURNS varchar(4096) CHARSET utf8
BEGIN
DECLARE out_str VARCHAR(4096) DEFAULT '';
DECLARE c VARCHAR(4096) DEFAULT '';
DECLARE pointer INT DEFAULT 1;

IF ISNULL(in_str) THEN
RETURN NULL;
ELSE
WHILE pointer <= LENGTH(in_str) DO

SET c = MID(in_str, pointer, 1);

IF ASCII(c) > 31 AND ASCII(c) < 127 THEN
SET out_str = CONCAT(out_str, c);
END IF;

SET pointer = pointer + 1;
END WHILE;
END IF;

RETURN out_str;
END
;;
DELIMITER ;

之后只需调用函数如下:

SELECT product_name, udf_cleanString(product_name) AS 'product_Type' 
FROM table1;

关于mySQL 设置了一个没有特殊字符的 varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24013238/

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