MySQL 8.0 या उच्चतर का उपयोग करना
नीचे michal.jakubeczy के उत्तर के सौजन्य से, Regex द्वारा प्रतिस्थापित अब MySQL द्वारा समर्थित है:
UPDATE {table} SET {column} = REGEXP_REPLACE({column}, '[^0-9a-zA-Z ]', '')
MySQL 5.7 या उससे पहले के संस्करण का उपयोग करना
रेगेक्स यहां समर्थित नहीं है। मुझे अल्फ़ानम नामक अपना स्वयं का फ़ंक्शन बनाना था जिसने मेरे लिए वर्ण छीन लिए:
DROP FUNCTION IF EXISTS alphanum;
DELIMITER |
CREATE FUNCTION alphanum( str CHAR(255) ) RETURNS CHAR(255) DETERMINISTIC
BEGIN
DECLARE i, len SMALLINT DEFAULT 1;
DECLARE ret CHAR(255) DEFAULT '';
DECLARE c CHAR(1);
IF str IS NOT NULL THEN
SET len = CHAR_LENGTH( str );
REPEAT
BEGIN
SET c = MID( str, i, 1 );
IF c REGEXP '[[:alnum:]]' THEN
SET ret=CONCAT(ret,c);
END IF;
SET i = i + 1;
END;
UNTIL i > len END REPEAT;
ELSE
SET ret='';
END IF;
RETURN ret;
END |
DELIMITER ;
अब मैं यह कर सकता हूँ:
select 'This works finally!', alphanum('This works finally!');
और मुझे मिलता है:
+---------------------+---------------------------------+
| This works finally! | alphanum('This works finally!') |
+---------------------+---------------------------------+
| This works finally! | Thisworksfinally |
+---------------------+---------------------------------+
1 row in set (0.00 sec)
हुर्रे!