MYSQL belli bir ifadeden sonrasını silmek istiyorum

delphpin (1) 7 yıl önce sordu

Merhaba, bir MYSQL koduna ihtiyacım var.

Mysql'de (Opencart uygulaması üzerinde)  oc_url_alias tablosu içerisinde keyword sütunundaki içeriklerin ^ işareti ile başlayan her şeyi silmek istiyorum.  

^ işareti dahil olmak üzere, bu ifadeyle başlayan satırların tamamını temizlemem gerekiyor. Phpmyadmin üzerinden sorgu kodu arıyorum. 

Bu konuda yardımcı olabilir misiniz?

Yaklaşık 12 bin satırlık hata var, hepsini bu şekilde düzeltmeye çalışacağım. MYSQL'de henüz yeniyim.

Teşekkürler.

Toplam 2 cevap


alattin (17125) 7 yıl önce cevapladı

SQL sorgusu yazarken joker karakter kullanabilirsiniz.

DELETE FROM oc_url_alias
WHERE  (keyword LIKE '^%')

Bu ifade oc_url_alias tablosu içerisinde keyword sütunundaki içeriklerin ^ ile başlayan tüm verileri siler.

Düzenleme:

MS SQL için şu şekilde bir sorgu iş görür (MY Sql ile pek işim yok). Kafanda bir şeyler oluşması için yazdım.

UPDATE oc_url_alias
SET          Keyword = SUBSTRING(Keyword, 1, CHARINDEX('^', Keyword) -1)
WHERE (Keyword LIKE '%^/%')

MY SQL'de ise şu şekilde bir sorgu çalışır diye düşünüyorum (denemedim)

UPDATE oc_url_alias 
    SET Keyword = SUBSTRING_INDEX(Keyword, '^/', 1)
    WHERE Keyword LIKE '%^/%';

 

delphpin (1) 7 yıl önce cevapladı

Merhaba,

Sorguyu çalıştırdım fakat işlem sonucunu vermedi. Hata da oluşturmadı.

Şöyle örnek vereyim size belki ben durumu yanlış anlatmış olabilirim hocam.

 

efekt-pedal-processor-akustik-nux-pa-2-urun78442.html^/page.php?act=urunDetay&urunID=78442&name=efekt-pedal-processor-akustik-nux-pa-2

Yukarıdaki satırda html den sonra ^/ şeklinde başlayan bir satır var. sonrası da beraberinde geliyor. Bu şekilde birbirinden farklı 12 bin kadar satır var. Değiştirilecek satırların bu şekilde olduğunu düşünürsek alternatif bir şey yapabilir miyiz?

Teşekkürler.

alattin 7 yıl önce

veritabanında verile ne şekilde yer alıyor? URL üzerinden gitmek yanıltabilir. Opencart konusunda bilgili değilim. Veriler efekt-pedal-processor-akustik-nux-pa-2-ur... satırınrdaki gibi mi veritabanında?

delphpin 7 yıl önce

Merhaba, Evet bütün linkler birbirinden farklı ve yukarıda örnekte verdiğim gibiler. ^/ bu işaretle başlayan kısımların hepsini temizlemem gerekiyor. Biraz karışık ama mutlaka bir kolay yolu vardır diye düşünüyorum.

alattin 7 yıl önce

biraz düzenledim. Kontrol edersin.

delphpin 7 yıl önce

Teşekkür ederim, sorun çözüldü şimdi. :)