方法1:
REPLACE() を使用できます mysqlで特殊文字を削除する方法ですが、それが非常に効率的かどうかはわかりません。しかし、それは機能するはずです。
以下のように:
SELECT Replace(Replace(product_name,'@',''),'+','') as prod_type
From Table1
方法2:
他のすべての特殊文字をお持ちの場合は、これを使用してください(ソース )
-- ----------------------------
-- 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;