• 07-02-2020, 21:33:20
    #1
    merhaba

    kendi müşterilerime ait bazı verileri özelliklerine göre ayırdığım bir veri tabanım var. burada ilçe bazlı arama yapmak istiyorum ama yapamıyorum. her defasında bütün ilçeler çıkıyor.

    ben son isimli tablomun ilce sütunu 'seyhan' a eşitken (yani sadece seyhan ilçesinde oturan) 4 ayrı sütun olan aranan1 aranan2 aranan3 aranan4 sütunlardan herhangi bir özelliği taşıyan müşteriyi seçmek istiyorum ama yapamıyorum. uzun lafın kısası AND ve birden fazla OR olayını kullanamadım yardımcı olabilirseniz çok sevinirim kafayı sıyırıcam.

    "SELECT * FROM `son` WHERE `ilce` = 'seyhan' AND `aranan1` LIKE '%$kelime%' or `aranan2` LIKE '%$kelime%' or `aranan3` LIKE '%$kelime%' or `aranan4` LIKE '%$kelime%'"
  • 07-02-2020, 21:56:24
    #2
    AND ve OR koşullarını bu şekilde kullanamazsınız.

    JOIN deneyebilirsiniz.

    Örnek : https://gist.github.com/fatihtoprak/...bdf4aa557cadbd

    Ama şahsen ; bunun yerine WHERE IN / WHERE CONTAINS kullanmanızı tavsiye ederim.

    Örnek : https://gist.github.com/fatihtoprak/...e5335150901e33

    Daha temiz hali ; LIKE ANY' dir aslında.

    Örnek : https://gist.github.com/fatihtoprak/...ab9cfa6f607918

    Şeklinde yürüyebilirsiniz.
  • 07-02-2020, 22:09:25
    #3
    İlk or'dan sonra parantez kullanmayı denedin mi? Aşağıdaki gibi...

    "SELECT * FROM `son` WHERE `ilce` = 'seyhan' AND `aranan1` LIKE '%$kelime%' or (`aranan2` LIKE '%$kelime%' or `aranan3` LIKE '%$kelime%' or `aranan4` LIKE '%$kelime%')"
  • 08-02-2020, 15:40:50
    #4
    perkosan adlı üyeden alıntı: mesajı görüntüle
    İlk or'dan sonra parantez kullanmayı denedin mi? Aşağıdaki gibi...

    "SELECT * FROM `son` WHERE `ilce` = 'seyhan' AND `aranan1` LIKE '%$kelime%' or (`aranan2` LIKE '%$kelime%' or `aranan3` LIKE '%$kelime%' or `aranan4` LIKE '%$kelime%')"
    bir süre araştırdıktan sonra bu çözümü buldum tam olarak istediğimi yaptı teşekkürler.

    b