2016-06-04 10 views
0

Ich habe zwei SQL-Tabellen. Die erste ist ARTICLES mit Säulen wie title, content, category, author und die zweite ist ARTICLES_PHOTOS und enthält Daten über Bilder (Spalten title, filename, und article_id Fremdschlüssel ARTICLES Tabelle).MySQL regeneratin Bild Reihenfolge

Wenn Benutzer ein Bild löscht, möchte ich die Bestellung neu generieren. Zum Beispiel, wenn wir haben {a, b, c, d} und Benutzer löscht b Datensatz Ich möchte {a, c, d} mit {1, 2, 3} bestellen.

  1. Wie kann ich es auf die einfachste Weise tun? Ist es eine eingebaute SQL-Abfrage zu es tun?
  2. Sollte ich durch ARTICLES_PHOTOS Datensätze durchlaufen?
  3. Sollte ich alle ARTICLES_PHOTOS Datensätze sammeln und dann UPDATE Abfrage verwenden?
+0

Auftrag von photo_order funktioniert immer noch nach – splash58

+0

Dank für die Beratung zu löschen. Der Benutzer kann auch das erste Bild löschen. Aber was, wenn ich eine Liste von Artikeln mit Hauptfoto anzeigen möchte. Ich muss verwenden: 'SELECT articles.id, articles.title, articles.author, articles.category, articles_photos.photo_order, articles_photos.filename FROM Artikel INNER JOIN articles_photos ON articles.id = articles_photos.article_id WHERE articles_photos.photo_order = 1' – Jarmark

Antwort

1

Gerade photo_order verringern, die größer sind als gelöscht eine

update ARTICLES_PHOTOS 
    set photo_order = photo_order-1 
    where article_id = that_article_id and 
     photo_order > deleted_photo_order 
Verwandte Themen