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/10/09 18:06] – [Doppelte Imports vom Schatzkiste/Fotoaktions-Server finden] geraldmysql [2025/03/10 13:21] (aktuell) – [Groß- & Kleinschreibung bei Abfrage einer Tabelle in 'utf8_unicode_ci', die ausgelegt ist] gerald
Zeile 383: Zeile 383:
 SELECT liste.id, liste.jobnumber, liste.class, liste.name, liste.order_number, liste.value_payed, liste.order_number FROM qf_classlist as liste INNER JOIN (SELECT jobnumber, class, name, order_number, value_payed FROM qf_classlist GROUP BY jobnumber, class, name, order_number HAVING COUNT(id) > 1) dup ON (liste.jobnumber = dup.jobnumber && liste.name = dup.name && liste.class = dup.class && liste.order_number = dup.order_number && liste.value_payed = dup.value_payed) WHERE liste.value_payed > 0 AND liste.order_number != '' ORDER by jobnumber, class, name SELECT liste.id, liste.jobnumber, liste.class, liste.name, liste.order_number, liste.value_payed, liste.order_number FROM qf_classlist as liste INNER JOIN (SELECT jobnumber, class, name, order_number, value_payed FROM qf_classlist GROUP BY jobnumber, class, name, order_number HAVING COUNT(id) > 1) dup ON (liste.jobnumber = dup.jobnumber && liste.name = dup.name && liste.class = dup.class && liste.order_number = dup.order_number && liste.value_payed = dup.value_payed) WHERE liste.value_payed > 0 AND liste.order_number != '' ORDER by jobnumber, class, name
 </code> </code>
 +
 +
 +==== Fotokation: Ein Angebot (oder mehrere) an das Ende des Offerstrings anhängen ====
 +
 +<code>
 +UPDATE `fotoaction_pics` SET offer = CONCAT(offer, ',163') WHERE `valid_to` > '2025-11-20' AND offer NOT LIKE '%,163' LIMIT 25000
 +</code>
 +
  
 ==== Alle Bestellnummern der Fotoaktion eines Auftrags (z.B. für Excel) ==== ==== Alle Bestellnummern der Fotoaktion eines Auftrags (z.B. für Excel) ====
Zeile 391: Zeile 399:
 </code> </code>
  
 +==== Die Nachbestellnummern eines Auftrages wurden erstellt/reserviert, sollen aber wieder weg ====
  
 +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:
 +
 +<code>
 +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;
 +</code>
 +
 +Sind sie weg?
 +
 +<code>
 +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
 +</code>
 +
 +Jetzt die Relations löschen: (muss sein! Weil die reorder_id jetzt auf eine nicht-existierende picture_id zeigt!!!)
 +
 +<code>
 +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
 +</code>
 +
 +
 +Sind sie weg?
 +<code>
 +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
 +</code>
 +
 +==== Groß- & Kleinschreibung bei Abfrage einer Tabelle in 'utf8_unicode_ci', die ausgelegt ist ====
 +
 +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:** Sie können das BINARY-Keyword verwenden, um die Spalte in eine binäre Form umzuwandeln, wodurch die Unterscheidung zwischen Groß- und Kleinschreibung erzwungen wird:
 +
 +<code>SELECT * FROM tabelle WHERE BINARY spalte = 'Wert';
 +</code>
 +
 +  - **Binäre Kollation in der Abfrage festlegen:** Eine andere Möglichkeit ist, die Kollation direkt in der Abfrage zu ändern:
 +
 +<code>SELECT * FROM tabelle WHERE spalte COLLATE utf8_bin = 'Wert';</code>
 +
 +  - **Spalte mit einer binären Kollation erstellen:** Wenn die Abfrage häufiger benötigt wird, könnten Sie überlegen, die Spalte dauerhaft mit einer binären Kollation zu speichern:
 +
 +
 +<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>
  
 
Nach oben
mysql.1728497180.txt.gz · Zuletzt geändert: 2024/10/09 18:06 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