Also schreibe ich eine SQL-Abfrage, wie Sie es tun, und ich bin über ein Problem gestolpert. Was ich tun möchte, ist eine Abfrage in der Datenbank jedes Mal, wenn ein einzelner Benutzer eine bestimmte Seite besucht. Die Eindeutigkeit wird durch session_id() erreicht, da dies im Allgemeinen recht zuverlässig ist.SQL Query - INSERT aber nur wenn Datensatz noch nicht existiert?
Was ich will ist eine SQL-Abfrage, die eine Zeile von Daten in zwei Spalten eingefügt, aber nur, wenn diese beiden Spalten nicht bereits den gleichen Wert haben.
wenn Benutzer x
Besuche der Seite page1
genannt, dann in der Datenbank, wird es wie unten gezeigt Log:
+------------+---------+
| page_name | user_id |
+------------+---------+
| page1 | x |
+------------+---------+
Wie würde ich gehen, um eine Abfrage zu schreiben, die in der Tabelle überprüft, ob die Daten zu sein eingefügt wird ein Duplikat sein?
Meine aktuelle Abfrage lautet wie folgt (es ist nur eine Standardeinsatz Abfrage):
INSERT INTO `page_views` (`page_name`, `user_id`) VALUES ('.$pageName.', \''.session_id().'\')
Check Antwort hier: - http://stackoverflow.com/questions/16460397/sql-insert-into-table-only-if-record-doesnt-exist –
Mögliche Duplikat [Überprüfen Sie, ob eine Zeile vorhanden , andernfalls einfügen] (http://stackoverflow.com/questions/639854/check-if-a-row-exists-otherwise-insert) – Raj
Mögliches Duplikat von [MySQL Conditional Insert] (http://stackoverflow.com/questions/913841/mysql-conditional-insert) –