Update mit count
Hallo Zusammen,
Ich habe ein Tabelle mit folgendem Muster
Ich möchte nun in der Spalte ANZ die vorkommen von der PC_ID eintragen.
Danach söllte es wie folgt aussehen
Ich bräuchte also einen Befehlt der so in der Art arbeitet:
Natürlich weiß ich, dass diese Code-Zeilen nicht funktioniert.
Leider funktioniert auch Folgendes nicht, da ich immer auf die selbe Tabelle zugreife und keine eindeutige Zuornung vorhanden ist.
Kann mir vllt. jemand den Weg zeigen und evtl. erklären?
Schon mal danke im Voraus.
Ich habe ein Tabelle mit folgendem Muster
+ Download_ID + PC_ID + ANZ +
| 1 | 18362 | 0 |
| 2 | 18362 | 0 |
| 3 | 18362 | 0 |
| 4 | 28363 | 0 |
Ich möchte nun in der Spalte ANZ die vorkommen von der PC_ID eintragen.
Danach söllte es wie folgt aussehen
+ Download_ID + PC_ID + ANZ +
| 1 | 18362 | 1 |
| 2 | 18362 | 3 |
| 3 | 18362 | 3 |
| 4 | 28363 | 3 |
Ich bräuchte also einen Befehlt der so in der Art arbeitet:
UPDATE `downloads` SET `ANZ` = count(`PC_ID`)
Leider funktioniert auch Folgendes nicht, da ich immer auf die selbe Tabelle zugreife und keine eindeutige Zuornung vorhanden ist.
UPDATE `downloads` SET `ANZ` = (SELECT count(`PC_ID`) FROM `downloads` WHERE `PC_ID` = `downloads`.`PC_ID` GROUP BY `PC_ID`)
Kann mir vllt. jemand den Weg zeigen und evtl. erklären?
Schon mal danke im Voraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167488
Url: https://administrator.de/contentid/167488
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
5 Kommentare
Neuester Kommentar
Einfach 2 Tabellen:
Download_ID und PC_ID (Download_ID primärschlüssel)
PC_ID und ANZ (PC_ID primärschlüssel)
Somit ist die Anzahl nicht mehr reduntant.
Dann würd ich die Schleife mit einem PHP-Script machen (weiß leider nicht wie das in MySQL etc. geht):
UPDATE `anz_tabelle` SET `ANZ` = (SELECT count(*) FROM `downloads` WHERE `PC_ID` = `$pci` GROUP BY `PC_ID`) WHERE `PC_ID`=`$pci`
Vielleicht hilfts.
MfG M_M
Download_ID und PC_ID (Download_ID primärschlüssel)
PC_ID und ANZ (PC_ID primärschlüssel)
Somit ist die Anzahl nicht mehr reduntant.
Dann würd ich die Schleife mit einem PHP-Script machen (weiß leider nicht wie das in MySQL etc. geht):
UPDATE `anz_tabelle` SET `ANZ` = (SELECT count(*) FROM `downloads` WHERE `PC_ID` = `$pci` GROUP BY `PC_ID`) WHERE `PC_ID`=`$pci`
Vielleicht hilfts.
MfG M_M
Hi Freaky-Boy,
Dann frag' die Tabelle doch (nach dem Update ?) einfach mal so ab:
Somit hast du auch PC_ID und die Anzahl in einer Variablen.
Gruß
Günni
. . . In Wirklichkeit habe ich aber keine Spalte ANZ, sondern möchte an der Stelle einfach mit dem Wert weiter rechnen. . . .
Dann frag' die Tabelle doch (nach dem Update ?) einfach mal so ab:
<?php
$query="select PC_ID , count(PC_ID ) as 'Anzahl' from downloads group by PC_ID ";
/*
* Oder du suchst eine best. PC_ID . . .
*
* $query="select PC_ID , count(PC_ID ) as 'Anzahl' from downloads where PC_ID=62124 group by PC_ID ";
*/
$result=mysql_query($query);
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
echo "<p>".$row['PC_ID']." ist ".$row['Anzahl']." mal vorhanden<p>";
}
?>
Somit hast du auch PC_ID und die Anzahl in einer Variablen.
Gruß
Günni
Da ich nicht so ganz verstehe was Du eigentlich erreichen willst, würde ich Dir einfach mal die Begriffe: PROCEDURE und CURSOR ( http://dev.mysql.com/doc/refman/5.1/de/cursors.html ) an den Kopf werfen.
Könnte das möglicherweise etwas sein was Du suchst ?
Könnte das möglicherweise etwas sein was Du suchst ?