SORU
24 Kasım 2010, ÇARŞAMBA


Nasıl kullanılır mySQL değiştirebilir miyim() birden çok kayıt dizeleri değiştirmek için?

İçine bir editör kaçtı olmamalıydı bazı şeyler kaçmış bir sütundaki bazı kötü veri kayıtları, bir avuç olan bir veritabanı var ve oluşturulan bağlantılar kesiliyor.

Tüm kayıtları kötü karakterleri değiştirmek için bir sorgu çalıştırmak istiyorum, ama bunu nasıl anlamaya olamaz. MySQL the replace() function ama nasıl bir sorgu içinde kullanabilir miyim?

Örneğin, ne olur doğru sözdizimi istesem değiştirmek için dize < bir gerçek daha açılı ayraç (<) bütün kayıtları var < articleItem sütun? Tek bir sorgu (örneğin, ve tek bir hamlede tümünü seç değiştir) yapılabilir mi, ya da birden fazla sorgu yapmak zorunda mıyım? Eğer birden fazla sorgu varsa bile, nasıl replace() bunu kullanmak için birden fazla kayıt üzerinde bir alanın değerini değiştirmek?

CEVAP
24 Kasım 2010, ÇARŞAMBA


Çok genel bir düzeyde

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')

WHERE SomeOtherColumn LIKE '%PATTERN%'

Senin durumunda bu kaçan demiştin ama kaçtı olduklarını belirtmek bilmediğine göre, 10 ** kaçtı olduklarını söyleyeyim

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '<')

WHERE articleItem LIKE '%GREATERTHAN%'

Beri sorgunuza aslında olacak çalışma içinde dize, WHERE yan, niye bu desen eşleştirme sanmıyorum geliştirmek için herhangi bir performans - aslında gitmeyi oluşturmak için daha fazla çalışması için sunucu. Bu sorguyu yapacak tümcesi üye daha iyi performans başka bir olmadıkça, sadece böyle bir güncelleme yapabilirsiniz:

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '<')

Tamamen farklı bir açıdan yaklaşıyor:

Veri kaydetmeyin () seçtiğinizde bunu yapabilirsiniz

Yani: yerine

SELECT MyURLString From MyTable

Yapabilirsin

SELECT REPLACE (MyURLString, 'GREATERTHAN', '<') as MyURLString From MyTable

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • L33TNoonProductions

    L33TNoonProd

    24 EYLÜL 2010
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008