• 25-04-2009, 18:38:59
    #1
    Hep kafamı karıştırmıştır şimdiye kadar, ama şuna da ihtiyacım var.

    3 tablom var şarkı, video ve fikra. Yani şu şekilde
    +----------+
    |sohbetcafe|
    +----------+
    | sarki |
    | video |
    | fikra |
    +----------+
    Site içi arama yaptırdığımda 3'ünde birden aramasını istiyorum tabi bu kadar değil
    sarki'in içerisinde soyleyen,sarki,gonderen arasında arama yapacak
    video'nun icerisinde adi,gonderen arasinda
    fikra'in icerisinde adi,fikra,gonderen

    Bu kadar detayı nasıl gerçekleştireceğiz ?
  • 25-04-2009, 22:18:21
    #2
    Üyeliği durduruldu
    konuyu database e açsanız biraz daha iyi olurmuştu.zamanında bende merak ederdim bunu

    anahtar kelime union
  • 25-04-2009, 22:24:25
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    (select id from sarki where (soyleyen like '%$arama%') OR (sarki like '%$arama%') OR (gonderen like '%$arama%') ) 
    UNION 
    (select id from video where (adi like '%$arama%') OR (gonderen like '%$arama%')  ) 
    UNION 
    (select id from fikra where (adi like '%$arama%') OR (fikra like '%$arama%') OR (gonderen like '%$arama%') )
    Ama bu gibi bir arama için fulltext index yapılması daha uygun olur. Performans açısından değerlendirme yapılması gerekir.
  • 26-04-2009, 01:23:11
    #4
    Selam,

    Performans olarak kötü olacaktır. Bana göre kullanıcıya arama için neyi arayacağını seçtirmelisin. Yine de karar senin.

    Kolay gelsin.
  • 26-04-2009, 17:08:27
    #5
    Sadece sohbet sitesinde olacağı için pek sorun olmaz,
    Yani günde en fazla 5 kere arama yaptırılır. Arama sitesi olsaydı dediğiniz doğruydu
    ama bunun ayrı ayrı arattırmadan ne farkı var onu anlamadım ben.
    Açıklarmısınız ? Bu arada tşk ederim +rep
  • 26-04-2009, 17:50:26
    #6
    Farkı yok. Sorguları birleştiriyorsun o kadar. Bu arama sorgusunun join ile alakası yok.
  • 26-04-2009, 17:50:22
    #7
    5 kere arama yapılır diyorsun ama geniş çaplı aramayı gören hemen saldırmaya çalışır. Güvenlik önlemlerini almayı unutma. Gerçi ben de electronicboy gibi ziyaretçiye arayacağını seçtirmekten yanayım.
    UNION vs UNION ALL Performance | MySQL Performance Blog burda union all komutunun daha yüksek performans gösterdiğini açıklayan bir yazı var işine yarar ısrarcıysan. Aynı verileri gösteriyor al ekleyince ama senin tablolarına göre aynı satır çıkamaz, o yüzden kontrol etmesine de gerek yok.
    Aradaki farkın ne olduğu yada ne kadar farkettiğini bilmem ama tek sql komutu kullanabilirken neden üç tane kullanasın ki?
  • 26-04-2009, 22:03:08
    #8
    Üyeliği durduruldu
    her bir sorguyu tek tek calistirmissiniz gibi olur. o açıdan düşünebilirsiniz performans vs olarak. bu tarz bir sorunu yapabileceginiz tek çözüm yoludur
  • 27-04-2009, 00:22:29
    #9
    teşekkür ederim arkadaşlar +rep veriyordum forumxtr'den başladım ama diğerlerine gelince 24 saat dedi borcum olsun vericem hepinize
    Yani sonuç olarak tek tek arattırmak 'dan farkı yok