MySQL için split fonksiyonu

Excel’den aldığım bir veriyi hazırladığım bir tabloya aktarmam gerekiyordu. Tablomda ad ve soyad sütunları ayrı ayrı olacak şekilde tasarlanmıştı ama aktarmak istediğim Excel dosyasında isim olarak tek sütun vardı.

İlk iş olarak Excel dosyasını phpmyadmin yardımıyla komple bir tablo olarak veritabanına yükledim. Aktarma için kaynak tablodan select yapıp hedef tabloya insert uygulayacaktım ama bu ad, soyad sütunlarının ayrı ayrı olması işi biraz bozdu. Kaynak tablodan select yaparken isim sütunundaki veriyi kelimeler arasındaki boşluklardan yakalayıp ad ve soyadını soyadını ordan ayrı ayrı yakalamak icab ediyordu.

PHP’de bu tarz bir parçalama işlemini explode() fonksiyonu ile yapmaya alışmış biri olarak keşke MySQL’de de olsa diye düşündüm. MySQL’de yokmuş ama basit bir formülle kazandırılabiliyormuş. İşte MySQL için split fonksiyonu:

Bu fonksiyonu şu şekilde kullanabiliyoruz:

select split_str(isim,’ ‘,1);

Yukarıdaki select ifadesinde isim hanesini boşluklarından ayırmasını ve ilk kelimeyi yazmasını sağlamış olduk.

1 Yorum

  1. admin Yazar

    Bu fonksiyondaki LENGTH() fonksiyonu Türkçe özel karakterler gibi çift baytlı karakterlerde problem oluşturuyordu. Sorunu gidermek için LENGHT() yerine CHAR_LENGTH() fonksiyonu kullanıldı.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir