2

SELECT COUNT を使用して、mysql テーブルに重複があるかどうかを確認しています。重複している場合は、重複を削除したいと考えています。

クエリ結果がどのように見えるかのスクリーンショットを次に示します: http://s.prelicio.us/lDyRV.png

現在、私のテーブルには 2 つの「Aanpassingen voor website Chat-Garden」があります。それは正しいので、私はそれをカウントし、「Aantal」が立っている場所に、「Aanpassingen voor website Chat-Garden」が何行あるかを教えてくれます。

しかし、「2」が「Aantal」にすでに表示されているため、スクリーンショットの重複行を削除したいと思います。スクリーンショットに余分な行は必要ありません。(下手な英語ですみません)

これは現在のコードです:

<?php 

$products = mysql_query('SELECT * FROM `preo_invoices-products`');
if(!$products || mysql_num_rows($products) == '0') echo '<li>Er zijn geen producten voor dit factuur.</li>'; 

else $i == '0'; while($product = mysql_fetch_object($products)) {

$color = ($i % 2 == 0) ? ' class="grey"' : ''; $i++;


$result = mysql_query('SELECT *, COUNT(`id`) FROM `preo_invoices-products` WHERE `invoiceid` = "'.$paid->id.'" GROUP BY `description`');
while($row = mysql_fetch_array($result)) { 

?>

<li<?php echo $color; ?>>

<span class="inv9"><?php echo $row['COUNT(`id`)']; ?></span> // This one is the 'Aantal' where it shows 2
<span class="inv3">

<?php 
$services = mysql_query('SELECT * FROM `preo_services` WHERE `id` = "'.$product->serviceid.'" LIMIT 1');
while($service = mysql_fetch_object($services)) echo strtoupper($service->name); 
?>

</span>
<span class="inv14"><?php echo $product->description; ?></span>
<span class="inv9"><?php echo $product->tax; ?>%</span>
<span class="inv12">&euro;<?php echo $product->sum; ?>,-</span>
<span class="inv15">&euro;<?php echo $product->sum*$row['COUNT(`id`)']; } ?>,-</span>

</li>

<?php } ?> 

「Aantal」が重複した行を持っていることを示しているため、実際には重複行を削除する必要があります。しかし、同じ行が 3 つある場合、Aantal では「3」と表示され、スクリーンショットでも 1 行を表示する必要があります。

何か案は?

4

1 に答える 1

7

DISTINCTたとえば、クエリに追加できます

SELECT DISTINCT * FROM tableName
于 2012-12-13T00:47:05.007 に答える