• 24-01-2013, 14:43:19
    #1
    üzerinde çalıştığım bir projenin arama noktasında tıkanmış durumdayım.

    aşağıdaki tabloları kullanarak bir arama yapmak istiyorum. sanıyorum bu like ile çözülecek iş değil, fulltext, union vs gibi yöntemleri varmış ancak çözemedim.

    örnek1: nokia 3310 diye aratıldığında nokia yı markadan, 3310 u telefonlardan çekebilmek
    örnek2: 'en iyi kameralı nokia' diye aratıldığında yorumlardan çekip telefonlardan ilgili telefonu çekebilmeli

    yardımcı olmanızı rica ederim.

    tablo1 -- telefonlar
    telefonID, markaID, telefonAdi, telefonAciklama

    tablo2 -- markalar
    markaID, markaAdi

    tablo3 -- yorumlar
    yorumID, telefonID, yorum

    tablo4 -- etiketler
    etiketID, etiketAdi

    tablo5 -- etiketlerIliski
    iliskiID, etiketID, telefonID
  • 24-01-2013, 16:54:28
    #2
    Üyeliği durduruldu
    Yorumların bulunduğu tabloda yazıların sütununda aratacalsimiz çıkan sonuçtaki telefon id'lerini telefon tablosundan aratip yazdıracaksınız

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:54:28 -->-> Daha önceki mesaj 16:40:46 --

    Mesela yorumlarda ararken örnek sorgu
    SELECT * FROM yorumlar WHERE yorum LIKE '%nokia%' and yorum LIKE '%en%' and yorum like '%iyi%' and yorum like '%kameralı%'
    yani aranacak kelimeyi parçalayıp parça parça araycaksınız. Nokia 3310 için ise bence yine aynı teknikle bu sefer ürün markalarının bulunduğu tablodan marka adını iki kelimeyle de aratıp çıkan değerleri telefon tablosunda marka id'ne göre modelini like ile aratacaksiniz
  • 25-01-2013, 22:01:24
    #3
    öncelikle cevap için teşekkür ederim.

    ancak benim asıl sorduğum, aynı anda yorum, etiket, telefon tablolarını aratabilmek.
  • 25-01-2013, 22:18:02
    #4
    SELECT *, MATCH(header, spot, description, tags) AGAINST('search_tag') AS search
    FROM games
    WHERE MATCH(header, spot, description, tags) AGAINST('search_tag')
    ORDER BY search DESC;
    fulltext index eklemelisin. İnternette araştırırsan SQL MATCH kriteriyle kesinlikle bulunur.