Rumah > pangkalan data > tutorial mysql > 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
Lepaskan: 2023-08-29 15:41:02
ke hadapan
735 orang telah melayarinya

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

Aksara bukan abjad angka adalah seperti berikut -

@,!,#,&,(),?, /
Salin selepas log masuk

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)
Salin selepas log masuk

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!');
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan