Anleitung Hilfreiche SQL-Befehle

Thema wurde von Petra, 28. April 2015 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.122
    Danke vergeben:
    947
    Hi, ich würde sagen:

    Code:
    delete from emails where subject LIKE '%COPY%';
    ungeprüft.
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Danke, werde ich testen
     
  3. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.669
    Danke erhalten:
    1.264
    Danke vergeben:
    300
    Hi,

    bitte keine einzelenen SQL Befehle für E-Mails nutzen, hier müssen einige MySQL Tabellen verknüpft werden und wenn man nur aus einer Tabelle löscht, kann die E-Mails Seite im Gambio Admin nicht mehr aufgerufen werden.

    Also wenn ihr E-Mails löschen möchtet, dann bitte immer alle Tabellen beachten.
    Folgende Tabellen müssen mit jeder E-Mail geprüft und entsprechende Eintrge gelöscht werden:

    email_attachments
    email_contacts
    emails
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    #344 barbara, 26. Mai 2019
    Zuletzt bearbeitet: 26. Mai 2019
    Hallo Till,

    danke für die Warnung.
    Es handelt sich nur um Newsletter-Mails, die als Kopie an den Shopinhaber gegangen sind.
    Da dürfte doch eigentlich nichts bei
    email_attachments
    email_contacts
    stehen, oder?

    Nachtrag:
    in den email_attachments steht nicht, aber in email_contacts stehen 3 Einträge zu jeder Copy. :(3

    Gibt es da einen Befehl?
    Nach E-Mail-ID wäre aufwendiger, als manuell im Admin zu löschen.
     
  5. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.669
    Danke erhalten:
    1.264
    Danke vergeben:
    300
    Es werden auf jeden Fall immer email_contacts gespeichert, da stehen Empfänger, Absender und noch CC und BCC drin.

    Für 2 Tabellen muss der SQL wie folgt aussehen.

    PHP:
    DELETE emailsemail_contacts
    FROM emails
    INNER JOIN email_contacts
    WHERE emails
    .email_id email_contacts.email_id
    AND emails.subject LIKE '%COPY%';
    ungeprüft!
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    #346 barbara, 26. Mai 2019
    Zuletzt bearbeitet: 26. Mai 2019
    Danke Till, werde ich testen,

    Scheint zu funktionieren :)
     
  7. Anonymous

    Anonymous Mitglied

    Registriert seit:
    26. September 2018
    Beiträge:
    13
    Danke erhalten:
    1
    Danke vergeben:
    4
    Kann ich mir, über einen SQL Befehl alle Kunden auflisten lassen, die bisher keine Bestellungen gemacht haben?

    Ideal wäre es auch, wenn man diese dann gleich löschen könnte.
     
  8. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Es gibt Kunden, die sich Anmelden, etwas in den Warenkorb packen, aber erst später bestellen.
    Z.B., weil sie das erst mit XY besprechen wollen.

    Wenn Du die jetzt löscht, müssten die sich alles neu zusammensuchen, neu anmelden... das werden die nicht machen, die werden eher denken, dass sie im falschen Shop sind und woanders suchen.

    Eine ähnliche Abfrage ist aber hier:
    (Link nur für registrierte Nutzer sichtbar.)
    Eventuell kannst Du die anpassen...
     
  9. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    8. Februar 2013
    Beiträge:
    1.425
    Danke erhalten:
    250
    Danke vergeben:
    173
    Gibt es einen SQL Befehl um alle Artikel einer Kategorie 30% Sonderangebotsrabatt zu geben?
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Willst du allen Artikeln einer Kategorie einen Artikelrabatt geben, oder alle Artikel einer Kategorie als Sonderangebot haben?
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    8. Februar 2013
    Beiträge:
    1.425
    Danke erhalten:
    250
    Danke vergeben:
    173
    als Sonderangebot
     
  12. peter_hader

    peter_hader Mitglied

    Registriert seit:
    10. April 2019
    Beiträge:
    19
    Danke erhalten:
    1
    Danke vergeben:
    2
    Das würde mich auch interessieren. Gibt es da eine Lösung?
     
  13. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Dafür habe ich jetzt keinen Befehl, aber das sollte recht schnell in Quick Edit gehen...
     
  14. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.122
    Danke vergeben:
    947
    Ich kann euch was gegen Aufwandsentschädigung (2-stellig) machen dafür. Mit Admin-Menü Eintrag, updatesicher und ohne Installation. Gerne PM bei Interesse.
     
  15. Anonymous

    Anonymous Aktives Mitglied

    Registriert seit:
    26. März 2019
    Beiträge:
    25
    Danke erhalten:
    1
    Danke vergeben:
    2
    Ich habe nun gefühlte 2 Stunden den Tread gelesen aber nach all dem Umbenennen, löschen, updaten etc. nie den Verweis auf eine Reindixierung gelesen. Ist das beim Cashe leeren inbegriffen?


    Hier ein paar SQL Statements, die für (Shop) Anfänger (wie mich) hilfreich sein können.
    Bei der Eingabe neuer Artikel kommt es immer wieder vor, dass die Angaben zu Gewicht, Preis, Währung etc. vergessen werden.
    Alles wichtige Angaben, die zu Abmahnungen führen können.


    Kommafehler beim Preis:
    Alle Artikel bei denen der Bestand größer 0 ist und
    der Preis über 20€ liegt und
    die Sprache auf “Deutsch“ steht:

    SELECT `products`.`products_id`, `products`.`products_quantity`, `products`.`products_price`, `products`.`products_image`, `products_description`.`products_name`
    FROM `products` JOIN `products_description`
    ON `products`.`products_id` = `products_description`.`products_id`
    WHERE `products_description`.`language_id` = 2 and `products`.`products_price` > 20 AND `products`.`products_quantity` > 0



    Fehler bei der Angabe zum Lagerbestand:
    Alle Artikel bei denen der Bestand größer 20 ist und
    der Preis größer 0 ist und
    die Sprache auf “Deutsch“ steht:

    SELECT `products`.`products_id`, `products`.`products_quantity`, `products`.`products_price`, `products`.`products_image`, `products_description`.`products_name`
    FROM `products` JOIN `products_description`
    ON `products`.`products_id` = `products_description`.`products_id`
    WHERE `products_description`.`language_id` = 2 and `products`.`products_price` > 0 AND `products`.`products_quantity` > 20




    Fehlender Eintrag zum Gewicht:
    Alle Artikel bei denen der Bestand größer 0 ist und
    der Preis größer 0 ist und
    das Gewicht gleich 0 ist und
    die Sprache auf “Deutsch“ steht:

    SELECT `products`.`products_id`, `products`.`products_weight`, `products`.`products_quantity`, `products`.`products_price`, `products`.`products_image`, `products_description`.`products_name`
    FROM `products`
    JOIN `products_description`
    ON `products`.`products_id` = `products_description`.`products_id`
    WHERE `products_description`.`language_id` = 2 and `products`.`products_price` > 0 AND `products`.`products_quantity` > 0 and `products`.`products_weight` = 0



    Die o.g. Abfragen erstellen Tabellen, die man entsprechend abarbeiten kann, es werden keine Änderungen vorgenommen.


    Was mir fehlt, sind die Zusammenhänge der Tabellen wenn es um den Eintrag zur Währung geht. Kann jemand helfen, oder gibt es eine Übersicht aus der zu erkennen ist, wie die 266 Tabellen zusammenhängen?

    Gruß Petra
     
  16. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Den legst Du einmal im Admin unter Shop Einstellungen -> Land / Steuer -> Währungen fest - da bastelt man nicht an der Datenbank herum.

    Was genau hast Du da vor?

    Man sollte so wenig wie möglich direkt in der Datenbank machen. Vieles geht auch einfach im Admin (z.B. kann man alle Artikel nach Gewicht sortieren und gleich die mit "0" korrigieren).
     
  17. Anonymous

    Anonymous Aktives Mitglied

    Registriert seit:
    26. März 2019
    Beiträge:
    25
    Danke erhalten:
    1
    Danke vergeben:
    2
    Hallo Barbara,
    es ist ein schlimmer Fehler einen Artikel einzustellen und die Preisangabe zu vergessen (im schlimmsten Fall muss man den Artikel für 0 Euro verschenken).
    Daher versuche ich noch eine SQL-Abfrage für die Datenbank zusammenzustellen, die mir alle Artikel die auf Lager sind und die keine Preisangabe haben, ausweist.

    LG Petra
     
  18. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Das wird dann nicht funktionieren, wenn Du z.b. Artikel mit 0€ einstellst und Eigenschaften mit Aufpreis.

    Ist zwar im quick Edit nicht anders (wenn es Eigenschaften gibt), geht da aber auch.
    Einfach Kategorie, Name Preis und Lagerbestand anzeigen lassen und nach Preis 0 und Lagerbestand >1 filtern.
    Dann bekommst Du die Liste und kannst diese gleich (in der Liste) abarbeiten.
     
  19. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    8. Februar 2013
    Beiträge:
    1.425
    Danke erhalten:
    250
    Danke vergeben:
    173
    Danke für den Tipp, das war insoweit hilfreich
     
  20. Spritonline

    Spritonline Erfahrener Benutzer

    Registriert seit:
    25. Juni 2015
    Beiträge:
    75
    Danke erhalten:
    7
    Danke vergeben:
    21
    Hallo!
    Ich möchte meine Artikel nach Preis sortiert anzeigen.
    Dafür suche ich den SQL Befehl.
    Im Artikel ist der Preis allerdings 0€. Die Preise sind in den Eigenschaften hinterlegt.

    Gruß Jörg