Ich habe eine einfache Tabelle wie folgt.PHP MYSQL Einfügen/Aktualisieren
CREATE TABLE `stats` (
`id` int(11) NOT NULL auto_increment,
`zones` varchar(100) default NULL,
`date` date default NULL,
`hits` int(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
Also nur einfache Treffer Zähler pro Zone pro Tag speichern.
Aber ich möchte nur den Trefferwert für den gleichen Tag erhöhen.
Ich habe das MYSQL DUPLICATE KEY UPDATE versucht, aber das wird nicht funktionieren, da ich viele Zonen an verschiedenen Daten haben kann, also kann ich sie nicht einzigartig oder Daten machen.
So ist die einzige Art, wie ich denken kann, ist zunächst eine Abfrage zu tun, um zu sehen, ob ein Datum noch existiert dann eine einfache if() für insert/update
Gibt es einen besseren Weg, da es eine solche Aufgabe zu tun vielleicht sind es viele 1000 Treffer pro Tag.
Hoffe das macht Sinn :-).
Und danke, wenn Sie beraten können.
Ich habe gesagt, ich habe versucht, die DUPLICATE KEY UPDATE zu verwenden, und es wird nicht funktionieren, weil Zone & Datum nicht eindeutig sein kann. Beispiel eine Zone wird mehrere Tage haben, dh. Zone - Datum - Aufrufe zone1 - 2009-05-11 - 100 zone2 - 2009-05-11 - 55 zone1 - 2009-05-10 - 120 zone2 - 2009-05-10 - 88 Wenn ich ein einheitliches Datum oder eine einheitliche Zone hätte, hätte ich nur zwei Datensätze aus dem obigen Beispiel. : :-( – Lee
UNIQUE (Zone, Datum) stellt sicher, dass Zone und Datum eindeutig * zusammen * sind. Es ist vollkommen in Ordnung, mehrere Einträge mit der gleichen Zone zu haben, solange Daten unterschiedlich sind. Das Gleiche gilt für mehrere Einträge mit der Das gleiche Datum und verschiedene Zonen. Aber es darf nicht zwei Einträge mit der gleichen Zone * und * Datum. Ich denke, das entspricht Ihren Anforderungen. Versuchen Sie es in einer Test-Datenbank und sehen, ob es funktioniert. –
Ich versuche es erneut Ayman. ich hatte excatly, was Sie oben hatte aber wieder krank jetzt versuchen. – Lee