Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| mysql [2024/09/30 11:17] – [Tauschen von Werten in einer Zelle] gerald | mysql [2025/06/27 11:35] (aktuell) – [FA-Test-Bestellung löschen] gerald | ||
|---|---|---|---|
| Zeile 12: | Zeile 12: | ||
| [[http:// | [[http:// | ||
| + | |||
| + | {{:: | ||
| ===== Interne Variable zum Sortieren von Listen ===== | ===== Interne Variable zum Sortieren von Listen ===== | ||
| Zeile 383: | Zeile 385: | ||
| SELECT liste.id, liste.jobnumber, | SELECT liste.id, liste.jobnumber, | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ==== Fotokation: Ein Angebot (oder mehrere) an das Ende des Offerstrings anhängen ==== | ||
| + | |||
| + | < | ||
| + | UPDATE `fotoaction_pics` SET offer = CONCAT(offer, | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Alle Bestellnummern der Fotoaktion eines Auftrags (z.B. für Excel) ==== | ||
| + | |||
| + | |||
| + | < | ||
| + | SELECT class, name, orderinfo_key FROM `qf_classlist` WHERE `jobnumber` = 2871 AND `class` != ' | ||
| + | </ | ||
| + | |||
| + | ==== Die Nachbestellnummern eines Auftrages wurden erstellt/ | ||
| + | |||
| + | Die Klassenlisten sind drinnen, die Bilder sind noch nicht gemacht. Die NB-Nummern wurden reserviert, die Barcodes sind gedruckt. Fotograf hat keine Lust mehr und ein anderer Fotograf macht den Auftrag. Die alten NB-Nummern müssen weg als Datenschutzgründen und man muss die Reserviertung neu nachen. | ||
| + | |||
| + | Erst mal alle Nachbestellnummern des Auftrags löschen: | ||
| + | |||
| + | < | ||
| + | DELETE r | ||
| + | FROM qf_reorder AS r | ||
| + | JOIN qf_picture_relation AS rel ON (rel.reorder_id = r.id) | ||
| + | JOIN qf_classlist AS c ON (rel.classlist_id = c.id) | ||
| + | WHERE c.jobnumber = 2911; | ||
| + | </ | ||
| + | |||
| + | Sind sie weg? | ||
| + | |||
| + | < | ||
| + | SELECt r.* FROM qf_reorder AS r JOIN qf_picture_relation AS rel ON (rel.reorder_id = r.id) JOIN qf_classlist AS c ON (rel.classlist_id = c.id) WHERE rel.picture_id = 0 AND c.jobnumber = 2911 | ||
| + | </ | ||
| + | |||
| + | Jetzt die Relations löschen: (muss sein! Weil die reorder_id jetzt auf eine nicht-existierende picture_id zeigt!!!) | ||
| + | |||
| + | < | ||
| + | DELETE rel | ||
| + | FROM qf_picture_relation AS rel JOIN qf_classlist AS c ON (rel.classlist_id = c.id) | ||
| + | WHERE rel.picture_id = 0 AND c.jobnumber = 2911 | ||
| + | </ | ||
| + | |||
| + | |||
| + | Sind sie weg? | ||
| + | < | ||
| + | SELECT rel.* | ||
| + | FROM qf_picture_relation AS rel JOIN qf_classlist AS c ON (rel.classlist_id = c.id) | ||
| + | WHERE rel.picture_id = 0 AND c.jobnumber = 2911 | ||
| + | </ | ||
| + | |||
| + | ==== Groß- & Kleinschreibung bei Abfrage einer Tabelle in ' | ||
| + | |||
| + | Das ci hinten bedeutet 'case insensitiv' | ||
| + | |||
| + | |||
| + | Ich habe eine Tabelle in einer Datenbank mit der Kollation utf8_unicode_ci. Jetzt möchte ich eine Abfrage machen, die auf Groß- und Kleinschreibung achtet. Wie mache ich das? | ||
| + | |||
| + | Lösungsmöglichkeiten: | ||
| + | |||
| + | - **BINARY-Keyword verwenden: | ||
| + | |||
| + | < | ||
| + | </ | ||
| + | |||
| + | - **Binäre Kollation in der Abfrage festlegen: | ||
| + | |||
| + | < | ||
| + | |||
| + | - **Spalte mit einer binären Kollation erstellen: | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | ==== PHP: Einfach dt. Datum in SQL-Format umwandeln ==== | ||
| + | |||
| + | |||
| + | PHP: | ||
| + | < | ||
| + | $date_de = ' | ||
| + | $date_sql = DateTime:: | ||
| + | echo $date_sql; // Gibt " | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== FA-Test-Bestellung löschen ==== | ||
| + | |||
| + | Um neues Shopsystem zu testen, habe ich in ' | ||
| + | |||
| + | Testen: | ||
| + | |||
| + | < | ||
| + | -- Betroffene vault_order_items | ||
| + | SELECT * FROM vault_order_items WHERE dir LIKE ' | ||
| + | |||
| + | -- Betroffene vault_order | ||
| + | SELECT * FROM vault_order | ||
| + | WHERE id IN ( | ||
| + | SELECT order_id FROM vault_order_items WHERE dir LIKE ' | ||
| + | ) | ||
| + | AND id NOT IN ( | ||
| + | SELECT order_id FROM vault_order_items WHERE dir NOT LIKE ' | ||
| + | ); | ||
| + | |||
| + | </ | ||
| + | |||
| + | Echtes Löschen: (ACHTUNG! Löscht auch Bestellungen, | ||
| + | |||
| + | < | ||
| + | START TRANSACTION; | ||
| + | |||
| + | -- 1. Lösche alle vault_order, | ||
| + | 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 ' | ||
| + | ); | ||
| + | |||
| + | -- 2. Lösche alle vault_order_items mit dir LIKE ' | ||
| + | DELETE FROM vault_order_items | ||
| + | WHERE dir LIKE ' | ||
| + | |||
| + | COMMIT; | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||