Bazen veritabanında birden fazla sütunda tuttuğumuz verileri birleştirmek ve o şekilde kullanmak isteriz. Bu aynı tablonun sütunları olabileceği gibi farklı tabloların sütunları da olabilir. Bu işlemi sunucu tabanlı scriptinize (PHP, ASP.NET gibi) yıkmaktansa verileri SQL sorgunuzda birleştirerek veritabanından birlikte çekmek scriptinizin yükünü azaltacaktır.
SELECT id,CONCAT(adi,soyadi) AS adisoyadi FROM uyeler
burada CONCAT() fonksiyonu adi ve soyadi sütunlarını sadece birleştirir. Yani çıktımız: “MuhittinÖzer” şeklinde olur.
SELECT id,CONCAT_WS(' ',adi,soyadi) AS adisoyadi FROM uyeler
bu sefer kullandığımız CONCAT_WS() fonksiyonu ise adi ve soyadi sütunlarını birleştirirken bir de araya ilk girdi değeri olarak verdiğimiz boşluğu sokar. Çıktımız: “Muhittin Özer” olur.
SELECT a.id,CONCAT_WS(' ',a.adi,a.soyadi,b.mezuniyet) FROM uyeler AS a INNER JOIN bilgiler AS b ON a.id=b.uye_id
Burada da uyeler tablosundan adi ve soyadi sütunlarını, bilgiler tablosundan da mezuniyet sütununu aldık ve aralarda boşluk bırakarak birleştirmiş olduk. Çıktımız ise: “Muhittin Özer 2005” oldu.
Güzel paylaşım yalnız bir sorum olacak, verdiginiz örnek isim soy isim sütunları birleşti ve yan yana çıktılarını aldık, bunu şu şekilde nasıl yaparız peki,
örnek veriyorum tablomda 2 adet tarih sütunu var ben bunları birleştirip listelemeyi bu birleştirme sonucunda tarihe göre yapmak istiyorum, bunda bi fikriniz varsa yardımcı olursanız sevinirim tşk.
Tam olarak ne yapmak istediğinizi anlayamadım. Bu tarihleri string olarak mı birlştirmek istiyorsunuz? String olarak birleştirdiğiniz takdirde listeleme neye göre olacak? Konuyu biraz açarsanız yardımcı olmaya çalışayım.
Peki hocam ekrana bastırırken bu şekilde gayet güzel çalışıyor fakat benim yapmak istediğim iki sütunu birleştirmek ve birleşen 2 sütunda LIKE fonksiyonuyla arama yapmak yani ad ve soyad sütunları birleşip dışardan gelecek olan ad soyadı karşılaştırıcam sonuç var ise ekrana bartırıcam. Bir kaç deneme yaptım ama sonuç alamadım.
Sorun halloldu teşekkürler:
Select m.adi,m.soyadi,m.tip,a.adid,s.soyadid,CONCAT_WS(‘ ‘,a.ad,s.soyad) As AdSoyad From musteri m INNER JOIN adlar a ON a.adid=m.adi INNER JOIN soyadlar s ON s.soyadid=m.soyadi Where CONCAT_WS(‘ ‘,a.ad,s.soyad) LIKE ‘%”&Str&”%’”
gibi bir sorgu işimi gördü..