Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mengalih keluar semua aksara bukan abjad angka daripada rentetan dalam MySQL?

Bagaimana untuk mengalih keluar semua aksara bukan abjad angka daripada rentetan dalam MySQL?

PHPz
PHPzke hadapan
2023-08-29 15:41:02709semak imbas

如何从 MySQL 中的字符串中删除所有非字母数字字符?

Aksara bukan abjad angka adalah seperti berikut -

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

Tiada fungsi terbina dalam MySQL untuk mengalih keluar aksara bukan abjad angka daripada rentetan. Oleh itu, kami mencipta fungsi yang mengalih keluar semua aksara bukan abjad angka. Pengisytiharan dan definisi fungsi adalah seperti berikut.

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)

Fungsi bernama "RemoveNonAlphaNumeric" mengalih keluar semua aksara bukan abjad angka daripada rentetan. Untuk menyemak, kami kini akan memanggil fungsi yang ditentukan pengguna.

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

Berikut ialah output yang menunjukkan kejayaan mengalih keluar aksara alfanumerik menggunakan fungsi "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)

Dalam rentetan ini (MyEmailidistest123), tiada @ dan! Kini terdapat simbol, yang bermaksud fungsi berfungsi dengan baik.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar semua aksara bukan abjad angka daripada rentetan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam