Door
Johan Vels
op 12-02-2015 10:07
gewijzigd op 12-02-2015 10:09
1.346 views
Hoi Allemaal!
Gebruik de volgende code om een COUNT te doen op rij2
<?php
$query = "SELECT rij1, rij2, rij3, COUNT(*) as count
FROM tabel
GROUP BY rij2
HAVING COUNT(*) > 1";
$result = mysql_query($query) or die ("Fout in query: $query. ".mysql_error());
while ($rows = mysql_fetch_array($result))
{ $col++;
echo " <tr class='gradeA'>
<td><span class='center'>
<input type='checkbox' />
</span></td>";
echo "<td>"; echo $rows['rij1']; echo "</td>"; echo "<td>"; echo $rows['rij2']; echo "</td>"; echo "<td>"; echo $rows['rij3']; echo "</td>";
mysql_free_result($result);
?>
Nu wil ik dat er achter elke rij komt te staan hoeveel duplicate records als een getal. Wil hiervoor GEEN extra rij maken in de database. Hoe zou ik dit kunnen doen?
Als in col2 dezelfde waarde meer dan 1 keer voorkomt wordt deze getoond. Dit werkt, maar nu wil dat er achter col2 komt te staan hoeveel deze dan voorkomt als getal dus bv. '2' of '3'
Met GROUP BY col2 groepeer je al op gelijke waarden in col2. De telling COUNT(*) as total meldt je dan hoeveel rijen dat zijn. Is total bijvoorbeeld 3, dan zijn er dus 3 rijen met dezelfde waarde in col2.
En zoals Frank aangeeft hebben de waarden van col1 en col3 na afloop een random waarde, omdat er verder geen verband is met de groepering op col2. (Laat deze dus weg!)
Als je van col1 en col3 ook wilt weten of hier waarden niet uniek zijn, dan zul je hier afzonderlijke queries voor moeten schrijven denk ik.