Ich habe eine Tabelle Typen, die die folgenden Spalten hat: ID, Name, Typ. Die Tabelle ist mit ca. 300 Zeilen gefüllt. Eine der Reihen:
ID Name Type
------------------
1 BMW S 1000 RR
Die folgende Abfrage gibt diese Zeile zurück:
SELECT * FROM Types WHERE Name = 'BMW'
Die folgende Abfrage gibt jedoch nichts zurück:
SELECT * FROM Types WHERE Type = 'S 1000 RR'
Der Typ enthält keine zusätzlichen Leerzeichen, und die Datentypen Name und Typ sind genau gleich (varchar 255, utf8_unicode_ci). Was kann das möglicherweise verursachen?
Ich benutze MySQL, InnoDB. Mit phpMyAdmin erhalte ich genau die gleichen Ergebnisse, daher gibt es keine Tippfehler in Spaltennamen ...
Ich habe das Problem gefunden: Um die Tabelle zu füllen, lese ich eine Textdatei pro Zeile. Das Zeilenumbruchzeichen war das Problem, es ist in der Durchsuchungstabellenansicht von phpMyAdmin unsichtbar, aber ich habe es beim Bearbeiten einer einzelnen Zeile gesehen.
Die folgende Abfrage hat mein Problem behoben:
UPDATE Types SET Type = REPLACE(REPLACE(Type, '\r', ''), '\n', '');
Gefunden in Wie entferne ich neue Zeilenzeichen aus Datenzeilen in MySQL?
Vielen Dank an alle für Ihre Kommentare.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen