sql >> Database teknologi >  >> RDS >> Mysql

mySQL sæt en varchar uden specialtegn

Metode 1:

Du kan bruge REPLACE() metode til at fjerne specialtegn i mysql, ved dog ikke om det er meget effektivt. Men det burde virke.

Ligesom nedenfor:

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

Fiddle Demo

Metode 2:

Hvis du har alle andre specielle tegn, så gå med dette (Kilde )

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

Kald derefter funktionen som følger:

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


  1. mybatis generator Kolonnenavnsmønster kan ikke være NULL eller tomt

  2. Forvirrende Ruby/MySQL-fejl:ugyldig pakke:sekvensnummer stemmer ikke overens

  3. Værktøjer til at generere et databasediagram/ER-diagram fra eksisterende Oracle-database?

  4. MySQL:Opdater alle rækker i en tabel, der matcher resultaterne af en anden forespørgsel