Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menapis Aksara Bukan Alfanumerik dengan Cekap daripada Rentetan MySQL?

Bagaimanakah Saya Boleh Menapis Aksara Bukan Alfanumerik dengan Cekap daripada Rentetan MySQL?

DDD
Lepaskan: 2024-12-07 20:28:14
asal
272 orang telah melayarinya

How Can I Efficiently Filter Non-Alphanumeric Characters from MySQL Strings?

Penapisan Aksara Cekap dalam Rentetan MySQL

Apabila membandingkan rentetan untuk kecekapan, adalah penting untuk menghapuskan aksara angka bukan alfa. Daripada menggunakan berbilang fungsi REPLACE, pertimbangkan untuk menggunakan penyelesaian alternatif.

MySQL 8.0 dan Ke Atas

MySQL 8.0 menyokong penggantian ungkapan biasa, membolehkan anda menggantikan aksara bukan abjad dengan kosong rentetan:

UPDATE {table} SET {column} = REGEXP_REPLACE({column}, '[^0-9a-zÀ-ÿ ]', '')
Salin selepas log masuk

MySQL 5.7 dan Di Bawah

Memandangkan ungkapan biasa tidak disokong dalam MySQL 5.7, anda boleh mencipta fungsi tersuai seperti berikut:

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

Menggunakan fungsi ini, anda boleh melakukan penapisan aksara sebagai berikut:

select 'This works finally!', alphanum('This works finally!');
Salin selepas log masuk

Output:

+---------------------+---------------------------------+
| This works finally! | alphanum('This works finally!') |
+---------------------+---------------------------------+
| This works finally! | Thisworksfinally                |
+---------------------+---------------------------------+
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menapis Aksara Bukan Alfanumerik dengan Cekap daripada Rentetan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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