Các ký tự không phải chữ số (non-alphanumeric) bao gồm: @, !, #, &, (, ), ?, /
MySQL không có hàm sẵn để xóa ký tự non-alphanumeric. Chúng ta tạo hàm tự định nghĩa:
Tạo hàm RemoveNonAlphaNumeric
mysql> DELIMITER //
mysql> CREATE FUNCTION RemoveNonAlphaNumeric(s CHAR(255))
-> RETURNS CHAR(255) DETERMINISTIC
-> BEGIN
-> DECLARE var1, length SMALLINT DEFAULT 1;
-> DECLARE result CHAR(255) DEFAULT '';
-> DECLARE ch CHAR(1);
-> SET length = CHAR_LENGTH(s);
-> REPEAT
-> BEGIN
-> SET ch = MID(s, var1, 1);
-> IF ch REGEXP '[[:alnum:]]' THEN
-> SET result = CONCAT(result, ch);
-> END IF;
-> SET var1 = var1 + 1;
-> END;
-> UNTIL var1 > length END REPEAT;
-> RETURN result;
-> END //
Query OK, 0 rows affected (0.10 sec)
Kiểm tra hàm
mysql> DELIMITER ;
mysql> SELECT 'My Email id is test@123!', RemoveNonAlphaNumeric('My Email id is test@123!');
+--------------------------+---------------------------------------------------+
| My Email id is test@123! | RemoveNonAlphaNumeric('My Email id is test@123!') |
+--------------------------+---------------------------------------------------+
| My Email id is test@123! | MyEmailidistest123 |
+--------------------------+---------------------------------------------------+
1 row in set (0.15 sec)
Kết quả MyEmailidistest123 không còn ký tự @ và !, hàm hoạt động đúng.