İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

SQL sorgusunda AND ve OR

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
şöyle ki, ogr_saatler tablosunda yaptığım aramalardan en az bir tanesi tuttuğu zaman satırı alsın istiyorum. istediğim şeyi, sorgudan uyeogretmen.ogr_bolge=bolgeler.bol_id bölümünü çıkarttığım zaman yapabiliyorum, yalnızca LIKE lardan en az 1 tanesi tutarsa satırı alıyor. fakat uyeogretmen.ogr_bolge=bolgeler.bol_id bölümünüde koymak zorundayım.

yani sorgu şu şekilde çalışmalı, uyeogretmen.ogr_bolge=bolgeler.bol_id olarak eşleştirmeli daha sonrada diğer LIKE lardan en az 1 tanesi uyuşursa satırı almalı.

sorguyu ne şekilde yapmam gerekli, fikiri olan varsa?

SELECT uyeogretmen.ogr_id,uyeogretmen.ogr_adsoyad,uyeogretmen.ogr_bilgi,uyeogretmen.ogr_puan,uyeogretmen.ogr_puansayi,bolgeler.bol_bolgeadi FROM
uyeogretmen,bolgeler
WHERE
uyeogretmen.ogr_bolge=bolgeler.bol_id OR uyeogretmen.ogr_saatler LIKE '%paz16001630,paz16301700,paz17001730,%' OR uyeogretmen.ogr_saatler LIKE '%paz16301700,paz17001730,paz17301800,%' OR uyeogretmen.ogr_saatler LIKE '%paz17001730,paz17301800,paz18001830,%' OR uyeogretmen.ogr_saatler LIKE '%paz17301800,paz18001830,paz18301900,%' OR uyeogretmen.ogr_saatler LIKE '%sali16001630,sali16301700,sali17001730,%' OR uyeogretmen.ogr_saatler LIKE '%sali16301700,sali17001730,sali17301800,%' OR uyeogretmen.ogr_saatler LIKE '%sali17001730,sali17301800,sali18001830,%' OR uyeogretmen.ogr_saatler LIKE '%sali17301800,sali18001830,sali18301900,%' OR uyeogretmen.ogr_saatler LIKE '%car16001630,car16301700,car17001730,%' OR uyeogretmen.ogr_saatler LIKE '%car16301700,car17001730,car17301800,%' OR uyeogretmen.ogr_saatler LIKE '%car17001730,car17301800,car18001830,%' OR uyeogretmen.ogr_saatler LIKE '%car17301800,car18001830,car18301900,%' OR uyeogretmen.ogr_saatler LIKE '%per16001630,per16301700,per17001730,%' OR uyeogretmen.ogr_saatler LIKE '%per16301700,per17001730,per17301800,%' OR uyeogretmen.ogr_saatler LIKE '%per17001730,per17301800,per18001830,%' OR uyeogretmen.ogr_saatler LIKE '%per17301800,per18001830,per18301900,%' OR uyeogretmen.ogr_saatler LIKE '%cum16001630,cum16301700,cum17001730,%' OR uyeogretmen.ogr_saatler LIKE '%cum16301700,cum17001730,cum17301800,%' OR uyeogretmen.ogr_saatler LIKE '%cum17001730,cum17301800,cum18001830,%' OR uyeogretmen.ogr_saatler LIKE '%cum17301800,cum18001830,cum18301900,%' OR uyeogretmen.ogr_saatler LIKE '%pazr09000930,pazr09301000,pazr10001030,%' OR uyeogretmen.ogr_saatler LIKE '%pazr09301000,pazr10001030,pazr10301100,%' OR uyeogretmen.ogr_saatler LIKE '%pazr10001030,pazr10301100,pazr11001130,%' OR uyeogretmen.ogr_saatler LIKE '%pazr10301100,pazr11001130,pazr11301200,%' OR uyeogretmen.ogr_saatler LIKE '%pazr11001130,pazr11301200,pazr12001230,%' OR uyeogretmen.ogr_saatler LIKE '%pazr11301200,pazr12001230,pazr12301300,%'
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
X='Y' AND (A='B' OR A='C' OR A='D' OR A='E')

Mantık programlamada parantez araları yine matematiksel işlemde olduğu gibi önce hesaplanır.

1 ve 0 ve 1 = 0
iken
1 ve (0 veya 1) = 1
olur.

LIKE'lı kısımlar parantezleyip, diğer tarafa AND ile bağlaman gerekir.
 

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
teşekkürler. kodu şu şekilde değiştirdim, fakat şu anda eşleşmesi gerektiğindede satırı almıyor. neden olabilir?

SELECT uyeogretmen.ogr_id,uyeogretmen.ogr_adsoyad,uyeogretmen.ogr_bilgi,uyeogretmen.ogr_puan,uyeogretmen.ogr_puansayi,bolgeler.bol_bolgeadi FROM uyeogretmen,bolgeler WHERE uyeogretmen.ogr_bolge=bolgeler.bol_id AND (uyeogretmen.ogr_saatler LIKE '%paz16001630,paz16301700,paz17001730,%' OR uyeogretmen.ogr_saatler LIKE '%paz16301700,paz17001730,paz17301800,%' OR uyeogretmen.ogr_saatler LIKE '%paz17001730,paz17301800,paz18001830,%' OR uyeogretmen.ogr_saatler LIKE '%paz17301800,paz18001830,paz18301900,%' OR uyeogretmen.ogr_saatler LIKE '%sali16001630,sali16301700,sali17001730,%' OR uyeogretmen.ogr_saatler LIKE '%sali16301700,sali17001730,sali17301800,%' OR uyeogretmen.ogr_saatler LIKE '%sali17001730,sali17301800,sali18001830,%' OR uyeogretmen.ogr_saatler LIKE '%sali17301800,sali18001830,sali18301900,%' OR uyeogretmen.ogr_saatler LIKE '%car16001630,car16301700,car17001730,%' OR uyeogretmen.ogr_saatler LIKE '%car16301700,car17001730,car17301800,%' OR uyeogretmen.ogr_saatler LIKE '%car17001730,car17301800,car18001830,%' OR uyeogretmen.ogr_saatler LIKE '%car17301800,car18001830,car18301900,%' OR uyeogretmen.ogr_saatler LIKE '%per16001630,per16301700,per17001730,%' OR uyeogretmen.ogr_saatler LIKE '%per16301700,per17001730,per17301800,%' OR uyeogretmen.ogr_saatler LIKE '%per17001730,per17301800,per18001830,%' OR uyeogretmen.ogr_saatler LIKE '%per17301800,per18001830,per18301900,%' OR uyeogretmen.ogr_saatler LIKE '%cum16001630,cum16301700,cum17001730,%' OR uyeogretmen.ogr_saatler LIKE '%cum16301700,cum17001730,cum17301800,%' OR uyeogretmen.ogr_saatler LIKE '%cum17001730,cum17301800,cum18001830,%' OR uyeogretmen.ogr_saatler LIKE '%cum17301800,cum18001830,cum18301900,%' OR uyeogretmen.ogr_saatler LIKE '%pazr09000930,pazr09301000,pazr10001030,%' OR uyeogretmen.ogr_saatler LIKE '%pazr09301000,pazr10001030,pazr10301100,%' OR uyeogretmen.ogr_saatler LIKE '%pazr10001030,pazr10301100,pazr11001130,%' OR uyeogretmen.ogr_saatler LIKE '%pazr10301100,pazr11001130,pazr11301200,%' OR uyeogretmen.ogr_saatler LIKE '%pazr11001130,pazr11301200,pazr12001230,%' OR uyeogretmen.ogr_saatler LIKE '%pazr11301200,pazr12001230,pazr12301300,%')
 

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
sorun LIKE'lardaki sorgulamadanmış, bahsettiğin c='c' AND (a='a' OR b='b') mantığı sorunsuz çalışıyor. teşekkürler.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst