Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mysql [2025/03/10 13:21] – [Groß- & Kleinschreibung bei Abfrage einer Tabelle in 'utf8_unicode_ci', die ausgelegt ist] geraldmysql [2026/10/09 15:49] (aktuell) – [Schauen, ob es Bestellungen gibt, deren Summe der Einzelposten nicht mit der Gesamtstumme übereinstimmt] gerald
Zeile 1: Zeile 1:
 ====== mySQL ====== ====== mySQL ======
 +
 +MariaDB
  
 [[mysql:dump|DB-Dump und Import]] [[mysql:dump|DB-Dump und Import]]
Zeile 12: Zeile 14:
 [[http://dev.mysql.com/doc/refman/5.0/en/string-functions.html|STRING-functions of mySQL]] [[http://dev.mysql.com/doc/refman/5.0/en/string-functions.html|STRING-functions of mySQL]]
  
 +
 +{{::sql.jpg?600|}}
 ===== Interne Variable zum Sortieren von Listen ===== ===== Interne Variable zum Sortieren von Listen =====
  
Zeile 392: Zeile 396:
  
  
-==== Alle Bestellnummern der Fotoaktion eines Auftrags (z.B. für Excel) ==== +==== Alle Bestellnummern / Nachbestellnummern der Fotoaktion eines Auftrags (z.B. für Excel) ====
  
 +Alle NB-Nummern nb-number, nbnumber
 <code> <code>
 SELECT class, name, orderinfo_key FROM `qf_classlist` WHERE `jobnumber` = 2871 AND `class` != 'Absent' AND `orderinfo_key` != '' ORDER BY class SELECT class, name, orderinfo_key FROM `qf_classlist` WHERE `jobnumber` = 2871 AND `class` != 'Absent' AND `orderinfo_key` != '' ORDER BY class
Zeile 468: Zeile 472:
  
 </code> </code>
 +
 +==== FA-Test-Bestellung löschen ====
 +
 +Um neues Shopsystem zu testen, habe ich in 'dir' von vault_order_items einen Strin geschrieben, der immer mit 'I:' anfängt. Die sollen alle weg und die dazugehörigen vault_order gleich mit.
 +
 +Testen:
 +
 +<code>
 +-- Betroffene vault_order_items
 +SELECT * FROM vault_order_items WHERE dir LIKE 'I:%';
 +
 +-- Betroffene vault_order
 +SELECT * FROM vault_order
 +WHERE id IN (
 +    SELECT order_id FROM vault_order_items WHERE dir LIKE 'I:%'
 +)
 +AND id NOT IN (
 +    SELECT order_id FROM vault_order_items WHERE dir NOT LIKE 'I:%'
 +);
 +
 +</code>
 +
 +Echtes Löschen: (ACHTUNG! Löscht auch Bestellungen, bei denen nur ein einziger Item-Eintrag mit 'I: ' beginnt (was ja nicht vorkommen sollte))
 +
 +<code>
 +START TRANSACTION;
 +
 +-- 1. Lösche alle vault_order, deren *alle* Items mit 'I:' beginnen
 +DELETE FROM vault_order
 +WHERE id IN (
 +    SELECT order_id
 +    FROM vault_order_items
 +    GROUP BY order_id
 +    HAVING SUM(CASE WHEN dir NOT LIKE 'I:%' THEN 1 ELSE 0 END) = 0
 +);
 +
 +-- 2. Lösche alle vault_order_items mit dir LIKE 'I:%'
 +DELETE FROM vault_order_items
 +WHERE dir LIKE 'I:%';
 +
 +COMMIT;
 +
 +</code>
 +
 +==== Schauen, ob es Bestellungen gibt, deren Summe der Einzelposten nicht mit der Gesamtstumme übereinstimmt ====
 +
 +
 +<code>
 +SELECT
 +    o.id,
 +    o.order_sum,
 +    SUM(i.quantity * i.cost) AS total_item_cost,
 +    SUM(i.cost),
 +    o.order_fee,
 +    (o.order_sum - o.order_fee)
 +FROM vault_order_items AS i
 +JOIN vault_order AS o ON o.id = i.order_id
 +WHERE
 + o.status > 0
 +GROUP BY
 +    o.id,
 +    o.order_sum,
 +    o.order_fee
 +HAVING
 +    SUM(i.cost) > (o.order_sum - o.order_fee);
 +</code>
 +
 +
 +
 +
 +
 +
 +
  
 
Nach oben
mysql.1741612919.txt.gz · Zuletzt geändert: von gerald
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp