Ana Sayfa   -   Forum   -   Dersler   -   Dosyalar   -   Kaynak Siteler   -   E - Kitaplar   -   Etiketler

Like ve not like ile arama sorguları oluşturmak
Ana Sayfa / Makaleler / Mysql | 0 Yorum | 511 Okuma
Gönderen: altayalp | Tarih: 10 Ağustos 2008 Pazartesi
Like ve not like belirttiğimiz sözcüğe benzeyen ya da benzemeyen kayıtları listelememizi sağlayan mysql cümlecikleridir. Örnek olarak uyeler isminde bir tablomuz olsun. Üyelerin adını uyeler tablomuzda ad sütununda tutuyoruz. Tablomuzda:

altayalp - engin - volkan

olmak üzere 3 adet kaydımız mevcut. Tabi siz tablomuzu daha çok kaydı bulunan, yüzlerce hatta binlerce kayıtlı bir tablo olarak düşünün. Eğer engin ismini taşıyan üyelerimizi görmek isteseydik şu şekilde bir sql sorgusu yazardık.


KOD:
select * from uyeler where ad like '%engin%'


Yukarıdaki sorgu, ismi engin olan yani ad sütununda engin sözcüğü geçen kayıtları listeler. % işareti like cümleciğine kriter atamamızı sağlar. % işareti ile toplam üç kriter oluşturabiliriz.

like '%altay%' içerisinde altay sözcüğü geçen kayıtları listeler.
like '%altay' içerisinde altay sözcüğü ile biten veri bulunan kayıtları listeler.
like 'altay%' içerisinde altay sözcüğü ile başlayan veri bulunan kayıtları listeler.

Veritabanımızda bulunan kayıtların tek kelime olma zorunluluğu yoktur. Arama yaptığımız sütun text alanına sahip, içerisinde haber tarzı geniş metin bulunduran bir sütun da olabilir. Arama yaptığımız sütundaki tüm veriler kriterimize dahil edilir. Belirttiğimiz sözcük sütunda var ise kayıt listelenir.

Like cümleciğini birden fazla sütunda arama yapmak için de kullanabiliriz.


KOD:
select * from uyeler where ad like '%volkan%' or ad like 'altay%'


Yukarıdaki sorgu bizim tablomuza göre hem altayalp, hem volkan adlı üyeleri listeler.

Not like kullanımı

Not like, % ile belirttiğimiz kriteri tersine çevirir. Bir nevi değil anlamı katar.


KOD:
select * from uyeler where ad not like '%engin%'


Yukarıdaki sorgu ad alanında engin sözcüğü olmayan kayıtları listeler. Bizim tablomuza göre altayalp ve volkan sonucunu döndürecektir.

Şunu da belirtmek istiyorum arama sorgularında performans almak ve optimize sağlamak için mysql'in index konusunu biraz araştırmalısınız. Başka bir makalede anlatmaya çalışacağımdan burada index konusuna girmiyorum.
[ Makaleyi İndir ] [ Yazıcı Görüntüsü ] [ Tavsiye Et ] [ Takibe Al ] [ Yorum Ekle ]
Bu sayfayı Paylaşın : del.icio.us | Furl | Digg | Technorati | Reddit | Google Bookmarks | Simpy
 
Bu Makaleye Hiç Yorum Yapılmamış


Makale Yazarı
Kullanıcı Adı: altayalp
Diğer Makaleleri ( 100 )
10 Ağustos 2008 Pazartesi

Bu Kategoriye Yeni Makale Ekle

Üye Alanı
Toplam Üye: 2611
Üye Adı:
Şifre:
Yükleniyor
İşlem Yapılıyor Lütfen Bekleyin...
Şifremi Unuttum
Üye Olmak İçin Tıklayın

Çevrimiçi: 1 Ziyaretçi, 0 Üye Toplam 1 Kişi Bulunmakta

Dersler

Aklınıza Takılan Herhangi Bir Sorun Mu Var? Forumlarımızdan Yardım İsteyebilirsiniz...

Dersler.Org altyapı olarak kendi kodladığımız Enderûn İçerik Yönetim Sistemini kullanmaktadır.

Tüm AYYILDIZ sevdalılarına, Aziz ŞEHİTLERE, VATAN kutsaldır diyen yiğitlere ithaf olunmuştur.


© altayalp 2007 Her Hakkı Saklıdır
İzinsiz kullanılamaz. Enderûn İçerik Yönetim Sistemi
Ubuntu, Linux
Çalmak, Çırpmak Haliyle Yasaktır
ve maalesef en iyi internet explorer ile izlenir
eXTReMe Tracker