[MySQL] untersch. Datentypen bei Abfrage (Feld / Wert)

Mimamorn

Grünschnabel
Hallo,

ich habe eine Verständnisfrage zu einer Datenbank-Abfrage. Ich möchte eine MySQL-Datenbank nach einem Suchbegriff durchsuchen und es soll in allen Spalten gesucht werden. Jetzt machen die Felder der Datenbank Probleme, deren Datentyp Integer ist. Es gibt z.B. das Feld "MA.PLZ", Typ: Int. Wenn ich jetzt zum Beispiel nach "Mustermann" suche, passiert folgendes: Alle Datensätze, bei denen im Feld MA.PLZ nichts steht, werden ausgegeben. Hab dann ein wenig rumprobiert und bin auf folgendes Verständnisproblem gestoßen:

Die Abfrage
PHP:
SELECT *
FROM `mitarbeiter`
WHERE `MA.PLZ` = 'Mustermann'
gibt alle Datensätze zurück, deren Wert im Feld MA.PLZ 0 ist.

Wieso?

Muss ich tatsächlich bei der Suche über alle Felder den Datentyp jedes Feldes beachten und eine entsprechende Verzweigung basteln?

MfG

Mimamorn
 
Hallo,

evtl. kannst Du es mit cast funktionen oder umwandlungsfunktionen sauber lösen.

Warum die 0 values erhälst ist meiner Meinung deswegen da du in der WHERE clausel
PHP:
WHERE `MA.PLZ` = 'Mustermann'
einen int - wert auf einen String vergleichst, der string ist für den Datentyp int natürlich NULL.

Du must die Datentypen nicht kennen, ich würde alle auf char oder so casten.

http://dev.mysql.com/doc/refman/5.0/en/functions.html

Viel Glück
 
Danke für den Hinweis, hab wieder ein Stückchen mehr verstanden. Mit der cast-Funktion läuft die Suche einwandfrei!

MfG

Mimamorn
 

Neue Beiträge

Zurück