Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mySQL đặt một varchar không có các ký tự đặc biệt

Phương pháp 1:

Bạn có thể sử dụng THAY THẾ () Phương pháp xóa ký tự đặc biệt trong mysql, không biết nó có hiệu quả không. Nhưng nó sẽ hoạt động.

Như bên dưới:

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

Fiddle Demo

Phương pháp 2:

Nếu bạn có Tất cả các Bộ sạc đặc biệt khác thì hãy chọn cái này ( Nguồn )

-- ---------------------------- 
-- 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 ;

Sau đó, chỉ cần gọi hàm như sau:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gọi đến phương thức không xác định Illuminate \\ Database \\ Schema \\ Blueprint ::increments ()

  2. # 1111 - Sử dụng chức năng nhóm không hợp lệ

  3. MySQLdb - Kiểm tra xem hàng có tồn tại Python không

  4. Cách xáo trộn một cột trong MySql

  5. Phân trang để hiển thị giá trị tối đa và giới hạn phần còn lại