13 October 2013 von teiling88
Snippets

Sortierung der Artikeleigenschaften

Folgende Anforderung an die Sortierung der Artikeleigenschaften erhielt ich von einem Kunden. Der Kunde möchte gerne seine Eigenschaften danach sortieren wie viele Artikel diese jeweils verwenden. Da das Sortiment nicht all zu häufig geändert/erweitert wird habe ich mich für einen nächtlichen MySQL Event entschieden. Hier ist das Exemplarische SQL Statement für die erste Eigenschaftengruppe:

UPDATE s_filter_values SET position=0 WHERE optionID=1;
SET @counter = 0;

UPDATE s_filter_values sfv
INNER JOIN(
    SELECT sfv.id
    FROM s_filter_values sfv
    INNER JOIN s_filter_articles sfa ON sfv.id = sfa.valueid
    WHERE sfv.optionID = 1
    GROUP BY sfv.id
    ORDER BY COUNT(sfv.id)DESC
) s_filter_tmp ON sfv.id = s_filter_tmp.id
SET sfv.position = (@counter := @counter + 1)
WHERE sfv.optionID=1;

UPDATE s_filter_values 
SET position = (@counter := @counter + 1) 
WHERE position = 0 
AND optionID = 1 
ORDER BY value;
Wer eine bessere Lösung hat/weiß möge Sie mir gerne mitteilen :-)

Loading…