• 22-01-2023, 17:22:27
    #1
    bu kodumda hatalı yer neresi olabilir arkadaslar haber_durum 1 olanlari cekmek istiyorum ama hepsi geliyor
    SELECT * from haberler WHERE tur='sanal' OR tur='genel' and haber_durum='1' ORDER BY haber_saat
  • 22-01-2023, 17:25:51
    #2
    SELECT * from haberler WHERE (tur='sanal' OR tur='genel') and haber_durum='1' ORDER BY haber_saat
    bu şekilde olması lazım
  • 22-01-2023, 17:29:04
    #3
    SELECT * from haberler WHERE (tur='sanal' OR tur='genel') and haber_durum='1' ORDER BY haber_saat

    ( ) parantezleri koyarsan daha düzgün çalışır
  • 28-01-2023, 10:11:22
    #4
    Hatalı yer sorgunun "WHERE" kısmında olabilir. "OR" operatörünün önceliği "AND" operatöründen daha yüksektir. Bu nedenle, sorgunuz şöyle çalışıyor: "tur 'sanal' veya (tur 'genel' ve haber_durum '1')" olarak değerlendiriliyor.

    Bu hatayı düzeltmek için parantez kullanarak sorguyu düzenleyebilirsiniz. Aşağıdaki gibi:

    SELECT * from haberler WHERE (tur='sanal' OR tur='genel') and haber_durum='1' ORDER BY haber_saat


    Bu şekilde, sorgunuz "tur 'sanal' veya tur 'genel' ve haber_durum '1'" olarak değerlendirilir.