SQL sorgusunda AND ve OR

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
şö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,%'
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
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.
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
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,%')
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
sorun LIKE'lardaki sorgulamadanmış, bahsettiğin c='c' AND (a='a' OR b='b') mantığı sorunsuz çalışıyor. teşekkürler.
 
Geri
Üst