SORU
12 HAZİRAN 2009, Cuma


Nasıl bir düzenli ifade yapmak MySQL yerine?

~500 k satır ile bir tablo var; (255) UTF8 sütun varchar filename Bir dosya adı içerir;

Dosya adı çeşitli tuhaf karakterleri kaldýrmak için çalışıyorum - karakter sınıfı kullanmak sandım: [^a-zA-Z0-9()_ .\-]

Şimdidüzenli ifade ile değiştirin sağlar MySQL fonksiyonu? Benzer bir işlevi YERİNE bakıyorum() fonksiyonu - basit örneği şöyle:

SELECT REPLACE('stackowerflow', 'ower', 'over');

Output: "stackoverflow"

/* does something like this exist? */
SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-'); 

Output: "-tackover-low"

Hakkında REGEXP/RLIKE, ama bu sadece kontrol biliyorumeğerbir maç bile yokturnemaç.

(Benolabilir"SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'" bir PHP komut dosyası, bir preg_replace "UPDATE foo ... WHERE pkey_id=..." ama bu bir son çare gibi görünüyor yavaş ve çirkin hack) . bunu bir yap

CEVAP
12 HAZİRAN 2009, Cuma


Hayır.

Ama eğer sunucuya erişiminiz varsa, bir kullanıcı kullanabilirsiniz tanımlı fonksiyon (UDF) mysql-udf-regexp gibi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • gsmaestro

    gsmaestro

    17 AĞUSTOS 2006
  • iZAPPA

    iZAPPA

    16 Temmuz 2010
  • TheJoeycool2010

    TheJoeycool2

    12 Temmuz 2010