Geçen gün bir sorunla karşılaştım. veri tabanında ad ve soyad sütunları ayrı ayrı tutuluyordu. Kullanıcım arama motoruna adı ve soyadı yazarak arama yapmak istiyordu. Fakat bu doğal olarak yapılamıyordu. Çünkü arama hem ad sütununda hem de soyad sütununda yapılıyordu. Sonuç bulunamıyordu.
Örnek tablomuz aşağıdaki gibi.
Arama SQL kodu da şöyle olsun:
Select * from uyeler where adi like'%İsmail ÖZTÜRK%' or soyad like '%İsmail ÖZTÜRK%'
Bu sorgudan sonuç 0 çıkacaktır.
Burada hayat kurtaran bir fonksiyon devreye girer: CONCAT. Concat birden çok sütunu birleştirir ve istediğiniz gibi yorumlamanıza izin verir size yeni sanal bir sütun oluşturabilir.
Bizim için ADI SOYADI şeklinde bir sanal sütun oluşturmasını istiyoruz. Yani adı sütunu boşluk sonra soyadı sütunu. Şimdi örneğimizi inceleyelim:
Arayacağımız isim ve soyisim: İsmail ÖZTÜRK
SELECT * FROM `ders_sql` where CONCAT(adi,' ',soyadi) like'%İsmail ÖZTÜRK%'
Buradan yukarıdaki tabloya göre bir satırlık sonuç döner.
CONCAT kullanımı aralarında virgül kullanarak birden çok alanı ve herhangib bir kelimeyi birleştirebilirsiniz.
Tam istediğim sorguydu, teşekürler