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 [2024/11/20 16:35] – [Doppelte Imports vom Schatzkiste/Fotoaktions-Server finden] geraldmysql [2025/06/27 11:35] (aktuell) – [FA-Test-Bestellung löschen] gerald
Zeile 12: Zeile 12:
 [[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 457: Zeile 459:
  
 <code>ALTER TABLE tabelle MODIFY spalte VARCHAR(255) COLLATE utf8_bin;</code> <code>ALTER TABLE tabelle MODIFY spalte VARCHAR(255) COLLATE utf8_bin;</code>
 +
 +==== PHP: Einfach dt. Datum in SQL-Format umwandeln ====
 +
 +
 +PHP:
 +<code>
 +$date_de = '24.03.2025';
 +$date_sql = DateTime::createFromFormat('d.m.Y', $date_de)->format('Y-m-d');
 +echo $date_sql; // Gibt "2025-03-24" aus
 +
 +</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>
  
  
  
 
Nach oben
mysql.1732120539.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