lostyazilim
tr.link

PHP & MYSQL = Sorgu içinde tekrar eden kayıtları elemek & bulmak için en iyi yol/lar!

3 Mesajlar 1.028 Okunma
lstbozum
tr.link

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
Hayırlı günler diliyorum öncelikle herkese...

Biraz araştırdığım fakat sade & ideal yolunu henüz bulamadığım ve bilginize danışmak istediğim bir konuyu vaktinizi çok almadan kısaca açayım...

Çeşitli nedenler ile sorgumun sonrasında listelenen kayıtlar içerisinde tekrar eden değerler var.

1.sorum;
Tek sütun (product_category sütunu) içinden çekilen
ve
aynı olan değerlerin sadece 1 tanesini göstermek, diğerlerini yok saymak için sorguya nasıl bir ekleme yapmamız gerekir?


2.sorum;
Birden fazla sütun (product_category_1, product_category_2, product_category_3 sütunları) içinden çekilen
ve
(tek bir liste içinde gösterilen) aynı olan değerlerin sadece 1 tanesini göstermek, diğerlerini yok saymak için sorguya nasıl bir ekleme yapmamız gerekir?



SİZLERİN TERCİH ETTİĞİNİZ, ÖNEREBİLECEĞİNİZ YÖNTEMLER NELERDİR?


&


Bir de bunun tersi, yani tekrar eden kayıtları bulmamız gerekirse şu koddan daha iyi ve fonksiyonel olduğunu düşündüğünüz alternatifler var mıdır?


SELECT
product_id,
product_name,
product_category

count( * ) AS repeat

FROM products

GROUP BY product_category

HAVING repeat > 1 ;



Son olarak konu ile ilintili bir soru daha paylaşayım;

count( * ) => tüm sütunları mı sayar yoksa kendisinden bir önceki öğeyi mi sayar?

Tüm sütunları saymıyor ise saymak için ne yapmamız gerekir?



&


Bilgilendirebilirseniz sevinirim...

Teşekkür ederim...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
reklam

HardCoreDeveloper HardCoreDeveloper WM Aracı Kullanıcı
  • Üyelik 29.03.2021
  • Yaş/Cinsiyet 31 / E
  • Meslek yazılımcılık
  • Konum İstanbul Avrupa
  • Ad Soyad D** C**
  • Mesajlar 14
  • Beğeniler 0 / 7
  • Ticaret 0, (%0)
Aynı satırlar olmadan çekmek istiyorsan
select * from TABLO_ADI group by SÜTÜN_ADI

//sütün adına göre gruplayıp aynı sütündan fazlalıkları getirme dedik

Aynı satırları çekmek istiyorsan;
select *,count(SÜTÜN_ADI) as say from TABLO_ADI
group by SÜTÜN_ADI
having say>1

//sütün adına göre saydırıp, sütün adına göre gruplayıp aynı sütündan 1 den fazla olanları getir dedik
BEYAZMASTER

kişi bu mesajı beğendi.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

HardCoreDeveloper adlı üyeden alıntı

Aynı satırlar olmadan çekmek istiyorsan
select * from TABLO_ADI group by SÜTÜN_ADI

//sütün adına göre gruplayıp aynı sütündan fazlalıkları getirme dedik

Aynı satırları çekmek istiyorsan;
select *,count(SÜTÜN_ADI) as say from TABLO_ADI
group by SÜTÜN_ADI
having say>1

//sütün adına göre saydırıp, sütün adına göre gruplayıp aynı sütündan 1 den fazla olanları getir dedik


HardCoreDeveloper Üstadım yanıtınız için teşekkür ederim.

Ancak odaklanabildim ve maalesef benim sorgumda bir farklılık olmadı.

Mevcut sorgu 10 ayrı kategori sütunundan veri çekiyor ve daha önce yazdığım group bye ifadesi ile aynı sizin yazdığınız.

Başka bir dokunuş yapılması gerekiyor...

Gene de teşekkürler...




$sorgu = $connn->prepare(" SELECT * FROM table_products_names

GROUP BY
product_cat1,
product_cat2,
product_cat3,
product_cat4,
product_cat5,
product_cat6,
product_cat7,
product_cat8,
product_cat9,
product_cat10
");

$sorgu->execute();



Select DISTINC konusunu araştırıyorum şu an...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al