Anleitung Hilfreiche SQL-Befehle

Thema wurde von Petra, 28. April 2015 erstellt.

  1. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

  2. Anonymous

    Anonymous Erfahrener Benutzer

    ff ist das denn für DICH für DEINEN Shop, oder willst du jetzt kostenlos was abgreifen, um das für 70,- EUR an einen Kunden weiterzuverkaufen?
     
  3. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    es geht drum dass ich öfters derartige kundenanfragen habe und denen gerne ein passendes einfaches rezept liefern würde.
     
  4. M. Zitzmann

    M. Zitzmann Erfahrener Benutzer

    Hier stimme ich Devil zu.
    Es gibt nur eine Tabelle in der die Sonderangebote drinstehen.
    Da ist es relativ einfach etwas passendes zusammenzubauen.
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Moin,

    gibt es einen Befehl um nur in Eigenschaften bei den EAN den Wert "Nicht zutreffend" zu löschen?

    Müsste das schnell entfernen....
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    update products_properties_combis set combi_ean = '' where combi_ean = 'Nicht zutreffend';

    ungeprüft ohne Gewähr.
     
  7. Anonymous

    Anonymous Erfahrener Benutzer

    Hi L & B Danke!!

    wenn ich das EAN Feld "Nicht zutreffen" leer haben will ist der Befehl dann so zu nutzen oder muss da noch was hin?
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    So nutzen.
     
  9. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Liste mit Artikeln (Produkt-IDs), bei denen das Zusatzfeld "Zusatz" in DE nicht gefüllt ist:
    Code:
    SELECT
        p1.products_id
    FROM
        products p1
    WHERE
        p1.products_id NOT IN (
            SELECT
                p2.item_id
            FROM
                additional_field_values p2, additional_field_descriptions p3, additional_field_value_descriptions p4, additional_fields p5
            WHERE
                p2.additional_field_value_id=p4.additional_field_value_id AND p2.additional_field_id=p3.additional_field_id AND p3.language_id=2 AND p3.name='Zusatz' AND p4.language_id=2 AND p5.additional_field_id=p2.additional_field_id AND p5.item_type='product'
        )
    
     
  10. Martin L.

    Martin L. Erfahrener Benutzer

    Kann mir freundlicherweise jemand den SQL Befehl nennen, um eine bestimmte Kategorie Versandkosten zuzuweisen?


     
  11. Maex

    Maex Erfahrener Benutzer

    Angebote mit Lagerbestand = 0, deaktivieren

    UPDATE specials AS a
    INNER JOIN products AS b
    ON a.products_id=b.products_id
    SET `status`= 0 WHERE b.products_quantity=0;
     
  12. sirtet

    sirtet Erfahrener Benutzer

    Titel und Inhalt von Produktbeschreibungs-Tabs in Produktbeschreibungs-Text einfügen

    Ich wollte die Tabs loswerden, ihren Inhalt wieder in die normale Beschreibung integrieren.
    Wenn man in Produktbeschreibungen Tabs anlegt, werden diese in der Datenbank im gleichen Feld gespeichert wie die Beschreibung. Es wird einfach am Ende ca. sowas angehängt: [TAB:MeinTabTitel]Der Inhalt meines Tabs[TAB:WeitererTitel... etc.

    Das Prinzip der Umwandlung: [TAB: ersetzen durch <h3> und ] durch </h3> (oder was auch immer man für den Tab-Titel verwenden will)

    Code:
    /* move gambio product_desc. tabs to product_desc. text*/
    SELECT 
      CONCAT('UPDATE products_description SET products_description = ', QUOTE(REPLACE(REPLACE(products_description, ']', '</h3>'), '[TAB:', '<h3>')),' WHERE products_id = ', products_id, ';') 
      AS run_to_update
    FROM products_description
    WHERE products_description LIKE "%[TAB:%"
    
    Vor dem Update hab ich noch gecheckt, ob nicht die schliessende eckige Klammer auch ausserhalb der TAB-Tags vorkommt:

    Code:
    /* check if there are square brackets other than from TAB tags [TAB:someTABtitle] */
    SELECT
    -- count ocurrences of ] bracket by adding 1 char for each occurrence and then subtract the length of the original
    SUM(   length(REPLACE(products_description, ']', 'xx'))   -   length(products_description)   )
    -- now subtract count of ] from occurrences of [TAB:
    -
    -- again, counting is done by length comparison, now after removing 1 char for each ocurrence of [TAB:
    SUM(   length(products_description)   -   length(REPLACE(products_description, '[TAB:', 'xxxx'))   )
    
    AS nonTABsqarebrackets
    FROM products_description;
     
    Zuletzt bearbeitet: 1. August 2022
  13. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Lange Produkt-URLs finden, z.B. wg. Fehlermeldung "File name too long" in den Apache-Logs:

    Code:
    SELECT * FROM `products_description` WHERE LENGTH(`gm_url_keywords`)>250;
    An die URL-Keywords wird noch ".html" (5 Zeichen) angehängt. Der SQL-Befehl findet also Produkte, deren (virtueller) Dateiname länger als 255 Zeichen ist.
     
  14. Anonymous

    Anonymous Erfahrener Benutzer

    Hallo,
    zu diesem SQL-Befehl habe ich ein paar Fragen:
    1.Wie lautet der Befehl, wenn ich nur die Preise bestimmter Hersteller bzw. bestimmter Kategorien ändern möchte?
    2. Werden bei einer änderung ALLE Kundengruppen (bei uns haben die Kundengruppen unterschiedliche Preise) erfasst oder nur die Standardpreise?
    3. Wenn die Preissteigerung z.B. 15,73% beträgt, wie wäre dann die richtige Schreibweise beim SQL-Befehl? Etwa so:
    update products set products_price=products_price*1.1573;
    Vielen Dank für eure Hilfe schon mal im vorraus.
    Mit besten Grüßen
    Martin
     
  15. atze

    atze Neues Mitglied

    Servus zusammen,

    hätte jemand eine Idee wie ich die Preise (Händlerpreis neuer Kunde Händler und Gast ) auch per SQL ändern kann. Oder gibt es die möglichkeit das nur für alle der normale Artikelpreis verwendet wird.

    Gruß
     
  16. Christian Mueller

    Christian Mueller Beta-Held

    Wenn Du die Kundengruppenpreise leer hast, dann wird der Standardpreis verwendet.
     
  17. Hansruedi Wettstein

    Hansruedi Wettstein Erfahrener Benutzer

    Kann man den Befehl auch wieder rückgängig machen?
     
  18. Anonymous

    Anonymous Erfahrener Benutzer

    Nö. Wie denn auch. Der Befehl sucht Werte und ersetzt sie. Jetzt gibt es nur noch diese Werte.

    Wenn du eine Datensicherung der DB hast, kannst du die wieder einspielen.
     
  19. Anonymous

    Anonymous Erfahrener Benutzer

    Verändere den Lagerbestand beim nächsten mal lieber im Quickedit.
    Schau welcher Artikel den höchsten Bestand hat. Diese Anzahl ziehst du bei allen Artikeln ab:
    Alle Artikel markieren
    Modus auf editieren stellen
    Bei "Lager" -10 (zum Beispiel)
    Speichern

    Und wenn du das dann wieder rückgängig machen möchtest, trägst du hier +10 ein.
     
  20. Hansruedi Wettstein

    Hansruedi Wettstein Erfahrener Benutzer

    Danke, zum Glück habe ich jedoch den Befehl noch gar nicht ausgeführt :)