Trade Republic - Provisionsfrei Aktien handeln
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: SQL-Befehl zum Einfügen von Trackingnummern in die orders_tracking

    Schreinermeister

    • Fördermitglied
    • Beiträge: 413
    • Geschlecht:
    Hallo,
    hab hierzu einen neuen Thread geöffnet
    https://www.modified-shop.org/forum/index.php?topic=20126.90

    Zusammenfassung:
    Ich möchte per SQL-Befehl die Trackingnummern, welche ich täglich per csv-Datei erhalte in die DB einfügen.
    Die Tackingnummern sind aber oftmals mehrfach in der Datei vorhanden und überschneiden sich auch mit vorangegangen csv-Dateien.
    Es können auch mehrere Trackingnummern für einen Auftrag vorhanden sein.
    Allerdings kann jede Trackingnummer nur einmal in der DB vorhanden sein. (Dies ist mein Ansatzpunkt)
    Leider fehlt mir das nötige Hintergrundwissen.

    noRiddle schreibt im anderen Thread
    Zitat
    Ebenfalls gangbar wäre ein SELECT um herauszufinden, ob es bereits einen Eintrag gibt und davon abhängig ein INSERT, wenn nicht vorhanden oder eben ein UPDATE bzw. ein Ignorieren, abhängig von bereits o.g. Antwort auf die Frage ob spätere Daten aktueller sind.

    Ich prüfe aktuell mit folgenden SELECT ob die Trackingnummer in der DB vorhanden ist
    Code: SQL  [Auswählen]
    SELECT * FROM `orders_tracking` WHERE `parcel_id` LIKE '01785085852848';

    Mit diesem INSERT füge ich aktuell die Trackingnummer in der DB ein
    Code: SQL  [Auswählen]
    NSERT INTO `orders_tracking`( `orders_id`, `carrier_id`, `parcel_id`, `date_added`) VALUES('65811','2','01785085852848',now());

    Nun müsste der INSERT nur ausgeführt werden wenn der SELECT kein Ergebnis liefert.   :-?
    ( Die Beispiele im Internet arbeiten mit "IF EXIST" oder "WHERE NOT EXIST", funktionieren aber bei mir nicht)

    Wie bekomm ich eine Abhängigkeit der Befehle hin?

    Gruß Chris

    Linkback: https://www.modified-shop.org/forum/index.php?topic=41542.0
    Shop Hosting

    Hetfield

    • modified Team
    • Beiträge: 937
    Ich habe mal ein Import-Modul geschrieben zum Import von Trackingnummern aus Excel-Dateien. Dabei wurden auch automatisch die Sendungsverfolgungsmails rausgeschickt und der Bestellstatus gesetzt.  ;-)

    Die doppelte Eintragung kannst Du mit INSERT IGNORE verhindern. Dazu muss aber ein eindeutiger Index auf die Spalte parcel_id  gesetzt werden.

    MfG Hetfield 8-)

    Schreinermeister

    • Fördermitglied
    • Beiträge: 413
    • Geschlecht:
    Hallo,

    @Hetfield
    Das angesprochene Modul würde mich interessieren.
    Kann das noch erworben werden?

    Gruß Chris

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Hallo Chris,

    [...]
    Nun müsste der INSERT nur ausgeführt werden wenn der SELECT kein Ergebnis liefert.   :-?
    ( Die Beispiele im Internet arbeiten mit "IF EXIST" oder "WHERE NOT EXIST", funktionieren aber bei mir nicht)

    Wie bekomm ich eine Abhängigkeit der Befehle hin?
    [...]

    folgendes Statement sollte funktionieren.

    Code: SQL  [Auswählen]
    INSERT INTO orders_tracking (orders_id, carrier_id, parcel_id, date_added)
    SELECT * FROM (SELECT '65811', '2', '01785085852848', now()) AS tmp
    WHERE NOT EXISTS (
        SELECT parcel_id FROM orders_tracking WHERE parcel_id = '01785085852848'
    ) LIMIT 1;
     

    Gruss
    Hanspeter

    Schreinermeister

    • Fördermitglied
    • Beiträge: 413
    • Geschlecht:
    Hallo hpzeller,

    Perfekt  :!:

    Funkktioniert wie gewünscht.

    Dadurch spart man sich viel Zeit, da das vorherige Filtern und Vergleichen der Daten wegfällt.

    Herzlichen Dank.

    Gruß Chris
    4 Antworten
    3034 Aufrufe
    15. Januar 2013, 16:25:04 von Frank_H
    2 Antworten
    906 Aufrufe
    03. Februar 2020, 18:26:25 von Andreas Kroll
    4 Antworten
    2739 Aufrufe
    11. Dezember 2013, 14:09:04 von innuXTC
    2 Antworten
    832 Aufrufe
    08. November 2023, 08:30:59 von Andreas Kroll
               
    anything