Einige MySQL Kniffe, die das Leben erleichtern können.

  • SQL
    1. UPDATE products_images SET image_name = CONCAT('1_', image_name);

    Würde dem Inhalt der Spalte

    SQL
    1. image_name

    einen Prefix

    Quote

    1_

    davor setzen.

  • Suchen und ersetzen mit MySQL

    SQL
    1. UPDATE products_images SET image_name = REPLACE(image_name, 'suchen', 'ersetzen mit');
  • Einer Spalte einen Wert hinzuaddieren:

    SQL
    1. UPDATE products_image SET image_nr=image_nr+1;
  • Zwei Spalten zusammenführen inkl. Leerzeichen:

    SQL
    1. UPDATE products_images SET image_name = CONCAT(image_nr, ' ', image_name);

    Würde den Inhalt der Spalte

    SQL
    1. image_name

    um den Inhalt der Spalte

    SQL
    1. image_nr

    und einem Leerzeichen zwischen beiden Daten erweitern.

  • Wenn auf der Startseite die Tage von Produkten abgelaufen ist im Datenbank ausführen:

    SQL
    1. UPDATE products SET products_date_added = now() WHERE products_startpage = 1;
  • Wenn man Datensätze mit Datensätzen aus einer anderen Tabelle aktualisieren will, kann folgendes verwendet werden.

    SQL
    1. UPDATE
    2. configuration_n AS c,
    3. configuration_dummy AS cd
    4. SET
    5. c.configuration_value = cd.configuration_value
    6. WHERE
    7. cd.configuration_key = c.configuration_key
    8. AND c.configuration_value = '';


    In diesem Beispiel werden alle fehlenden

    SQL
    1. configuration_value

    Einträge aus der Tabelle

    SQL
    1. configuration_n

    mit den Werten aus der Tabelle

    SQL
    1. configuration_dummy

    aktualisiert, als Identifikator werden die Spalten

    SQL
    1. configuration_key

    verwendet.

  • Datensätze kopieren, dabei Werte verändern:

    SQL
    1. CREATE TEMPORARY TABLE tmp SELECT * FROM categories_description WHERE language_id = 1;
    2. UPDATE tmp SET language_id = 3;
    3. INSERT INTO categories_description SELECT * FROM tmp;


    In diesem Fall werden die Datensätze aus der

    SQL
    1. categories_description

    in eine temporäre Tabelle kopiert, dort die

    SQL
    1. language_id

    aktualisiert und wieder in die Quelltabelle hinzugefügt.

  • Für Netto Preise:


    Für ,00 oder ,50

    SQL
    1. UPDATE `products` SET `products_price`= (ROUND(`products_price`*2,0)/2);


    Für ,00 oder ,x5

    SQL
    1. UPDATE `products` SET `products_price`= (ROUND(`products_price`*20,0)/20);


    Für Brutto Preise müssen die Zahlen jeweils mit dem MwSt Multiplikator, z.B. für 19%: 1.19, vorher multipliziert und danach dividiert werden. Bei gemischten Steuersätzen ist es von Vorteil die Steuerklasse in den WHERE-Clause zu setzen