Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Update mit count

Frage Entwicklung Datenbanken

Mitglied: Freaky-Boy

Freaky-Boy (Level 1) - Jetzt verbinden

05.06.2011 um 15:50 Uhr, 2954 Aufrufe, 5 Kommentare

Hallo Zusammen,

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`)
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.
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.
Mitglied: bugmenot2
05.06.2011 um 16:38 Uhr
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
Bitte warten ..
Mitglied: Freaky-Boy
05.06.2011 um 20:05 Uhr
Die Idee an sich ist schon nicht schlecht. In Wirklichkeit habe ich aber keine Spalte ANZ sondern möchte an der Stelle einfach mit dem Wert weiter rechnen. Mit deiner Lösung müsste ich dann ja wieder anfangen, die beiden Tabellen zusammenzustellen. Außerdem wird sich meine Tabelle sehr schnell ändern deswegen wollte ich das ganze ohne "zwischenspeiern" lösen.

Gibt es denn eine Möglichkeit die PC_ID im UPDATE in eine Variable zu legen?
Bitte warten ..
Mitglied: Guenni
05.06.2011 um 20:41 Uhr
Hi Freaky-Boy,

. . . 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:

01.
<?php 
02.
 
03.
$query="select PC_ID , count(PC_ID ) as 'Anzahl' from downloads group by PC_ID "
04.
 
05.
/* 
06.
* Oder du suchst eine best. PC_ID . . . 
07.
*  
08.
* $query="select PC_ID , count(PC_ID ) as 'Anzahl' from downloads where PC_ID=62124 group by PC_ID "
09.
*/ 
10.
 
11.
$result=mysql_query($query); 
12.
 
13.
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 
14.
  
15.
 echo "<p>".$row['PC_ID']." ist ".$row['Anzahl']." mal vorhanden<p>"
16.
 
17.
18.
 
19.
?>
Somit hast du auch PC_ID und die Anzahl in einer Variablen.


Gruß
Günni
Bitte warten ..
Mitglied: nxclass
05.06.2011 um 23:36 Uhr
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 ?
Bitte warten ..
Mitglied: Freaky-Boy
08.06.2011 um 20:19 Uhr
Danke mit PROCEDURE und CURSOR werde ich mich noch beschäftigen.
So wie ich das vermute, kratze ich gerade mal an der Oberfläche von SQL.

Ich habe mein Problem nun nach dem Vorbild von Günni gelöst.
Bitte warten ..
Ähnliche Inhalte
Windows Tools
gelöst Performance Counter weg (2)

Frage von emeriks zum Thema Windows Tools ...

Exchange Server
Exchange 2016 CU6 Fehler 1006 (Performance Counter) (5)

Frage von chrishoffi zum Thema Exchange Server ...

Administrator.de Feedback
gelöst Counter der Antworten auf einen Beitrag passt nicht oder aktualisiert langsam (3)

Frage von brammer zum Thema Administrator.de Feedback ...

PHP
gelöst How to get counter value from ebay (6)

Frage von thankusomuch zum Thema PHP ...

Neue Wissensbeiträge
LAN, WAN, Wireless

Schwachstelle im WPA2 Protokoll veröffentlicht

(3)

Information von colinardo zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte