PythonQ 240-8XX Uživatelský manuál Strana 171

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 768
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 170
150 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Ein bisschen komplizierter ist es, wenn der aktuelle Monat Dezember ist. Hier onnen Sie
nicht einfach eins zur Monatszahl (12) hinzuf¨ugen, weil es keinen 13. Monat gibt. Statt
dessen suchen Sie nach Tieren, die im Januar (Monat 1) geboren sind.
Sie onnen die Anfrage sogar so schreiben, dass sie unabh¨angig davon funktioniert, was
der aktuelle Monat ist. Auf diese Art brauchen Sie keine bestimmte Monatszahl in der
Anfrage benutzen. DATE_ADD() erlaubt Ihnen, einem gegebenen Datum ein Zeitintervall
hinzuzuf¨ugen. Wenn Sie dem Wert von NOW() einen Monat hinzuf¨ugen und dann den
Monatsanteil mit MONTH() extrahieren, ergibt das den Monat, der die kommenden Geburt-
stage enth¨alt:
mysql> SELECT name, geburtstag FROM pet
-> WHERE MONTH(geburtstag) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));
Eine andere oglichkeit, diese Aufgabe zu erf¨ullen, ist, 1 zu addieren, um den achsten
Monat nach dem aktuellen zu erhalten (nach Gebrauch der Modulo-Funktion (MOD), um
den Monatswert auf 0 zu stellen, falls er aktuell 12) ist:
mysql> SELECT name, geburtstag FROM pet
-> WHERE MONTH(geburtstag) = MOD(MONTH(NOW()), 12) + 1;
MONTH gibt eine Zahl zwischen 1 und 12 zur¨uck. MOD(irgendwas,12) gibt eine Zahl zwischen
0 und 11 zur¨uck. Daher muss die Addition nach MOD() erfolgen, weil wir ansonsten von
November (11) bis Januar (1) gehen w¨urden.
4.3.4.6 Mit NULL-Werten arbeiten
Der NULL-Wert birgt
¨
Uberraschungen, bis Sie mit ihm vertraut sind. Konzeptionell bedeutet
NULL einen fehlenden oder unbekannten Wert. Er wird in einiger Hinsicht anders als andere
Werte behandelt. Um auf NULL zu testen, onnen Sie nicht die arithmetischen Vergleich-
operatoren wie =, < oder != verwenden. Um sich das zu veranschaulichen, probieren Sie
folgenden Anfrage:
mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
Wie man sieht, erh¨alt man aus diesen Vergleichen keine sinnvollen Ergebnisse. Benutzen
Sie statt dessen die IS NULL- und IS NOT NULL-Operatoren:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
In MySQL bedeutet 0 oder NULL logisch Falsch und alles sonstige bedeutet logisch Wahr.
Der vorgabem¨aßige Wahrheitswert einer Boolschen Operation ist 1.
Zobrazit stránku 170
1 2 ... 166 167 168 169 170 171 172 173 174 175 176 ... 767 768

Komentáře k této Příručce

Žádné komentáře