Doğru Cevap
-
in ile ile yapmalısın aşağıdaki gibi.
SELECT * FROM telefon WHERE ozellik IN ('oyun','kamera','mp3','internet')
Eğer her ürünü tek kayıtta istiyorsan group by kullanmalısın aşağıdaki gibiSELECT * FROM telefon WHERE ozellik IN ('oyun','kamera','mp3','internet') GROUP BY telefon
Anladığım kadarıyla-
barisbabacanoglu
Cevap için teşekkür ederim ama IN operatörü de OR gibi çalışıyor, o yüzden bu da işimi görmüyor.10 yıl önce yazılmış -
Kesali
Verilen cevaplara bakınca ancak anlayabildim istediğini. Verdiğin özelliklere uyan telefonu istiyorsun. Group by ve having kullanabilirsin veya nested sql ilki daha basit.
SELECT * FROM telefon WHERE ozellik IN ('oyun','kamera','mp3','internet') GROUP BY telefon HAVING COUNT(*) = 4
Ayrıca tablonu elden geçirsen iyi olur çok fazla mükerrer kayıt var. Aradığın şeyi bulmakta zorlanabilirsin.10 yıl önce yazılmış -
barisbabacanoglu
cevap için teşekkürler ama bu şekilde de sonuç alamıyorum10 yıl önce yazılmış -
Kesali
Tablonuzun aynısını localde oluşturdum içine aynı verileri girdim. Verdiğim sql kodu nokia 5800 ı tek getiriyor. Tablo yapınız verdiğinizden farklı mı?
Ayrıca diğer varyasyonlarda da sonuçları filtre edebiliyor. örneğin kamera ve oyun da 5800 ve samsung geliyor. count = 2 seçmeniz gerekiyor sadece.10 yıl önce yazılmış 10 yıl önce güncellenmiş -
barisbabacanoglu
hocam kusura bakmayın yanlış test etmişim bu cevap işimi görmekle kalmıyor bana daha fazlasını da veriyor çok teşekkür ederim ellerinize sağlık10 yıl önce yazılmış -
Kesali
Rica ederim isiniz görüldüyse ne mutlu bana.10 yıl önce yazılmış
-
Cevaplar
-
o kod olemi olur. her defasında ozelik ozelik ne istiyorsun ozellikten tam köle etmisinsin..
şunu kullan kardesim("SELECT * FROM telefon WHERE ozellik IN ('oyun','kamera','mp3','internet'")
-
barisbabacanoglu
sağolasın kardeşim cevabın için. Soruda yazmayı unutmuşum ama ben IN operatörünüde kullandım oda istediğim sonucu vermiyor OR ile aynı işlemi görüyor oda.10 yıl önce yazılmış -
siyahbeyaz
haa soruyu eksık okumusum asıl sen kbakma..
soyle dene kardesim
select * from telefon where ozellik IN('oyun','kamera','mp3','internet') AND telefon='nokia 5800'
10 yıl önce yazılmış 10 yıl önce güncellenmiş -
barisbabacanoglu
bu şekilde de olmaz çünkü telefon='nokia 5800' bir ziyaretçi tarafından bilinmiyor. nokia 5800 çıkması gereken sonuç, arama sonucu yani10 yıl önce yazılmış
-
-
Alıntı!
Sorgusunu kullandığımız zaman haliyle tablodaki tüm verileri getiriyor benim istediğim bu sorgu sonucunda sadece nokia 5800 sonucunu alayım
("SELECT DISTINCT TELEFON FROM telefon WHERE ( (ozellik='oyun' OR ozellik='kamera' OR ozellik='mp3' OR ozellik='internet') ) ")
Gibi mi?-
barisbabacanoglu
Yok bu şekilde manuel olarak seçim yapılmış oluyor.
yemek konusundan örnek vereyim
en basitinden içinde domates, kabak, yağ ve tuz olan yemekleri listeletmek istediğimde
eğer OR kullanırsak bize yüzlerce sonuç verebilir. içinde domates tuz ve yağ olan yemeklerin içinde patlıcan yemeği de var ama ben patlıcanı seçmedim.
yalnızca içinde seçtiğim malzemeyi barındıran yemekler çıksın istiyorum, domates ve kabağı seçtiğimde eğer yemeğin malzemelerinde kabak yoksa o çıkmasın.
uzun süredir çıkamadım bu işin içinden.10 yıl önce yazılmış -
llorca
Cevabı güncelledim.
Sadece DISTINCT eklemen yeterli gibi.10 yıl önce yazılmış -
barisbabacanoglu
denedim ama buda işimi görmüyor kardeşim, DISTINCT tıpkı GROUP BY gibi çalışıyor, benim istediğim sonucu yine vermiyor.10 yıl önce yazılmış -
barisbabacanoglu
Denemiştim zaten sonuç alamıyorum.
Sanırım mysql sorguları ile değil farklı şeylerle bu sorunu çözebilirim.10 yıl önce yazılmış
-
-
Bir yapı üzerinden anlatayım hem tablo yapısı hemde sorgulara daha iyi karar verebiliriz umarım.
Bir yemek tarifleri sitesi düşünelim. Yemek ismi ekleniyor tarif ve malzemeler ekleniyor.
Tarif arama bölümünde malzemelere göre arama yapıyoruz.
checkbox'larla seçim yapılan bir listede:
1. Adım: Domates seçtim = menemen, kabak yemeği, patlıcan yemeği ve domates soslu çorba çıktı
2. Adım: Tuz seçtim = menemen, kabak yemeği, patlıcan yemeği ve domates soslu çorba çıktı
3. Adım: Kabak seçtim = kabak yemeği çıktı
tam olarak böyle birşey istiyorum. Seçtiğim özelliklerin hepsi bir üründe varsa sonuç olarak o ürün çıksın.
yani içinde kabak yada domates olan yemekleri değil içinde kabak ve domates olan yemekleri bulmak istiyorum.
Böyle bir mantığa göre tablo yapısı nasıl olmalı sorgularım nasıl olmalı uzun süredir bulamadım bunun cevabını.