Posts mit dem Label mysql werden angezeigt. Alle Posts anzeigen
Posts mit dem Label mysql werden angezeigt. Alle Posts anzeigen

11. Januar 2011

deutsche Umlaute in MYSQL-Abfragen

Wenn man eine MYSQL-Abfrage mit Umlauten benötigt sollte man beachten, das die Sonderzeichen anders interpretiert werden.
Ich habe lange gelesen, umgewandelt und probiert. Die Lösung war allerdings ganz anders und ganz einfach: Einfach tauschen:
Ä = A
Ü = U usw.

z.B:
...WHERE irgendwas LIKE '%Mühle%' 
in
...WHERE irgendwas LIKE '%Muhle%'

Weitere Informationen gibt es hier:
http://dev.mysql.com/doc/refman/5.1/en/charset-we-sets.html



1. Dezember 2010

LEFT JOIN extrem langsam

In einer Abfrage, nach felehnden Datensätzen verwende ich ein LEFT JOIN Anweisung.
Doch diese Abfrage dauerte inzwischen extrem lang.

Die Lösung war sehr einfach:
Ein fehlender Index  auf den Spalten, die für die Verknüpfung zuständig sind.

22. November 2010

Übersicht der Feldtypen in mysql zum "schnell mal nachsehen"

CHAR: Zeichenkette mit fester Länge. Maximal 255 Zeichen. CHAR-Werte werden case-insensitiv sortiert und verglichen, sofern nicht  unter "Attribute" der Schlüssel B/NARY gesetzt ist

VARCHAR: Zeichenkette mit maximal 255 Zeichen, hierbei ist jedoch die Länge ist variabel.
VARCHAR-Werte werden case-insensitiv sortiert und verglichen, sofern nicht  unter "Attribute" der Schlüssel B/NARY gesetzt ist

TINYTEXT, TINYBLOB: Zeichenkette mit einer Größe von max. 255 Byte (entspricht 255 Zeichen).

BLOB, TEXT: Für Zeichenketten mit einer maximalen Größe von 65.535 Byte. (Zeichen)

MEDIUMBLOB, MEDIUMTEXT: Zeichenkette, die maximal 16.777.215 Byte (Zeichen) groß ist.

LONGBLOB, LONGTEXT: Text mit einer maximalen Größe von 4.294.967.295 Byte (Zeichen)

TINYINT: Zahlen von -128 bis +127 oder 0 bis +255.

SMALLINT: Zahlen von -32.768 bis +32.767 oder nur positive Zahlen: 0 bis +65.535.

MEDIUMINT: Ganzzahlen von -8.388.608 bis +8.388.607 oder von 0 bis +16.777.215.

INT bzw. INTEGER: Ganzzahlen zwischen -2.147.283.648 und +2.147.283.647 oder von 0 bis +4.294.967.295.

BIGINT: Ganzzahlen zwischen -9.223.372.036.854.775.808 und +9.223.372.036.854.775.807,
oder, nur positive Zahlen, von 0 bis 18.446.744.073.709.551.615.

FLOAT:
Fließkommazahl Feld mit einfacher Genauigkeit
DOUBLE: Fließkommazahl-Feld mit doppelter Genauigkeit. Erlaubter Bereich von -1.79769313486231 57E+308 bis -2.2250738585072014E-308,O und 2.225073858507201 4E-308 bis 1.79769313486231 57E+308.

DECIMAL: Fließkommazahlen mit festgesetzer Anzahl von Nachkommastellen. Benötigt ein Vorzeichen.
Die Nummer wird als String gespeichert. Der erlaubte Bereich ist identisch mit DOUBLE.

ENUM: Hier können bestimmte Werte aufgezählt werden, dieses Feld kann nur mit einem Wert aus der Liste gefüllt werden.

SET: Mehrere Werte wie bei ENUM, wovon einer oder mehrere im Feld stehen können.

DATE: beliebiges Datum vom 1.1.1000 bis 31.12.9999 , Format YYYY-MM-DD (Y=Jahr, M=Monat, D=Tag).

DATETIME: Kombinationsfeld aus Datum und Zeit im Format YYYY-MM-DD hh:mm:ss (Y=Jahr, M=Monat, D=Tag, h=Stunde, m=Minute, s=Sekunde). 
Erlaubter Bereich von 1000-01-01 00:00:00 bis 9999-12-31 23:59:59.

TIMESTAMP: Ein Wert in Form JJJJMMTThhmmss (J=Jahr, M=Monat, T=Tag, h=Stunde, m=Minute, s=Sekunde) .
Dieses Zeitstempel-Feld ist nicht zu verwechseln mit dem UNIX-Timestamp. Der Eintrag wird bei vorhandenem TIMESTAMP-Feld automatisch gesetzt und eignet sich insbesondere zum Festhalten von Zeiten bei UPDATE- und INSERT-Operationen. Erlaubter Bereich von 1970-01- 01 00:00:00 bis zum Ende des Jahres 2037.

TIME: Zeit im Format hh:mm:ss (h=Stunde, m=Minute, sec=Sekunde) von -838:59:59 bis +838:59.59

YEAR: Jahreszahlen zwischen 1901 und 2155.
2-stellig oder 4-stellig (Standardvorgabe). Erlaubter Bereich von
1901 bis 2155 sowie 0000 im 4-stelligen Format und 1970-2069 (70-69  im 2-stelligen Format)