Mysql ' da aynı satırları listeleme

Başlatan ziyaretci, 16 Eylül 2012, 19:22:55

ziyaretci

 Merhaba,

Mysql da aşağıdaki gibi bir tablomuz olsun. Bu tabloda sadece aynı "ad " olan satırları listelesin ;

coco vac 15
coco vac 14     
 
Bunu nasıl yaparım? Ayrıntılı bir şekilde anlatırsanız memnun olurum .Teşekkürler.








adsoyadyas
cocovac15
kelamkaste78
cocovac14

arm-beginner

Tam ne istediğini anladığıma çok emin değilim :)

SELECT ad, soyad, yas, COUNT(ad) AS kac_adet
FROM testTable
GROUP BY ad
HAVING ( COUNT(ad) > 1 )

ziyaretci


Alıntı yapılan: arm-beginner - 16 Eylül 2012, 19:35:12
Tam ne istediğini anladığıma çok emin değilim :)

SELECT ad, soyad, yas, COUNT(ad) AS kac_adet
FROM testTable
GROUP BY ad
HAVING ( COUNT(ad) > 1 )













adsoyadyas
cocovac15
kelamkaste78
cocovac14


Yukarıdaki tabloda sadece aynı adlı satırları listeleyecek yani şu şekilde olacak

coco vac 15
coco vac 14     


arm-beginner

Çok mükkemel bir çözüm değil, ama en azından işini görür. Daha güzel birşey aklıma gelirse, eklerim.

SELECT * FROM testTable WHERE ad IN (SELECT ad FROM testTable  GROUP BY ad HAVING (COUNT(ad) > 1))

ziyaretci

Alıntı yapılan: arm-beginner - 16 Eylül 2012, 20:07:48
Çok mükkemel bir çözüm değil, ama en azından işini görür. Daha güzel birşey aklıma gelirse, eklerim.

SELECT * FROM testTable WHERE ad IN (SELECT ad FROM testTable  GROUP BY ad HAVING (COUNT(ad) > 1))


Teşekkür ederim istediğimi hallettim :)   elimde bazı örnek kodlar vardı php de ve mysql da ordan aldım yapıştırdım biraz mantık yürüttüm istediğim oldu  :)  Birazda ne yaptığımın farkında değilim :D


  Olay şu idi; eğer istediğim sayfayı üye olan kullanıcı açarsa açık olan  kullanıcı adının olduğu satırları  listele veriyorum kodu aşağıya belki birisinin işine yarar ;
  örnek verdiğim tablonun adı liste olsun, 

 
Alıntı Yap$sql = "select * from liste where ad='".$_COOKIE["ad"]."' Order By ad";

$oku = mysql_query($sql) or die(mysql_error());

arm-beginner

Tablo çok büyük ise, verdiğim kod yavaş çalışır.
Tablo'da PrimaryKey varsa (varsayalım fieldname == id_nr), o zaman bu kod daha hızlı çalışır:


SELECT sol.*
FROM testTable sol
INNER JOIN testTable sag
ON sol.ad = sag.ad 
WHERE sol.id_nr != sag.id_nr