如何從 MySQL 中的字串中刪除所有非字母數字字元?


非字母數字字元如下所示 -

@,!,#,&,(),?, /

MySQL 中沒有內建函式可以從字串中刪除非字母數字字元。因此,我們建立一個函式來刪除所有非字母數字字元。函式宣告和定義如下所示。

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)

名為“RemoveNonAlphaNumeric”的函式從字串中刪除所有非字母數字字元。要進行檢查,我們現在會呼叫使用者定義函式。

mysql>delimiter ;
mysql>  select 'My Email id is test@123!',RemoveNonAlphaNumeric('My Email id is test@123!');

以下是使用函式“RemoveNonAlphaNumeric”成功刪除字母數字字元後的輸出顯示。

+--------------------------+---------------------------------------------------+
| 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)

在此字串(MyEmailidistest123)中,現在沒有 @ 和 ! 符號,這意味著該函式正常工作。

更新日期:30-Jul-2019

2K+ 次瀏覽

開啟 職業生涯

完成課程即可獲得認證

開始學習
廣告