Ich frage mich, was wäre der einfachste Weg, um eine Spalte um +1 zu aktualisieren? Ich werde die Anzahl der Beiträge einer Kategorie basierend darauf aktualisieren, wann die Nutzer einen neuen Beitrag einreichen.MySQL Update Spalte +1?
Danke.
Ich frage mich, was wäre der einfachste Weg, um eine Spalte um +1 zu aktualisieren? Ich werde die Anzahl der Beiträge einer Kategorie basierend darauf aktualisieren, wann die Nutzer einen neuen Beitrag einreichen.MySQL Update Spalte +1?
Danke.
Der einfachste Weg ist, um nicht speichern die Zählung auf der Aggregatfunktion COUNT verlassen den Wert widerspiegeln, wie sie in der Datenbank:
SELECT c.category_name,
COUNT(p.post_id) AS num_posts
FROM CATEGORY c
LEFT JOIN POSTS p ON p.category_id = c.category_id
Sie können create a view die oben genannte Abfrage enthalten, so können Sie die Ansicht genau wie Sie eine Tabelle abfragen ...
Aber wenn Sie auf Speichern der Anzahl festgelegt sind, verwenden:
UPDATE CATEGORY
SET count = count + 1
WHERE category_id = ?
..replacing "?" mit dem entsprechenden Wert.
+1 für eine gute Antwort auf das Problem, wenn nicht die Frage – Amadan
Vielen Dank. Anfangs dachte ich, um die Anzahl der Posts in einer Kategorie zu bestimmen, würde ich die post-Tabellen für eine cat_id überprüfen, die dieser Kategorie entspricht, und sie dann addieren. Dachte, dass dies Ressourcenverbrauch oder weniger effizient sein kann, als direkt in diese Tabelle zu schreiben. – Cory
Es ist sehr schnell, wenn Sie einen Index für 'p.post_id' haben. – Amadan
Sie tun können:
UPDATE
categories
SET posts
= posts
+ 1 WHERE category_id
= 42;
+1 für eine gute Antwort auf die wörtliche Frage – Amadan
Wie wäre:
update table
set columnname = columnname + 1
where id = <some id>
update post set count = count + 1 where id = 101
Es tut mir leid, ich verstehe nicht. Möchten Sie alle Zeilen aktualisieren, indem Sie den Wert Ihrer Spalte auf den alten Wert + 1 setzen? – Benoit
@Benoit: Das OP möchte die mit der Kategorie verknüpfte Postanzahl speichern und aktualisieren. –