Seite 1 von 1

MySQLdb findet Datensatz nicht -> Bug?

Verfasst: Donnerstag 31. Juli 2008, 16:30
von Michael Schneider
Hallo Leute,

ich bin heute über einen sehr merkwürdigen Umstand gestolpert. Ich habe folgende Query:
select uid, parts, state from Current where parts like "%xxxxxxxxxx%" order by uid;
wobei die x-chars für eine Partnummer stehen.
Ich brauche alle Datensätze, in denen die Partnummer irgendwo im Feld parts enthalten ist.

Wenn ich die Query mit einem bestimmten Partnamen über den interaktiven Mysql-Modus ausführe, erhalte ich 3 Datensätze.
Aber wenn ich sie über die MySQLdb Schnittstelle ausführe, bekomme ich nur zwei Datensätze. Und genau dieser 3. war der Gesuchte, aufgrund dessen Abwesenheit ich auf den Umstand überhaupt aufmerksam wurde.

Habe ich etwas falsch gemacht?
Kennt jemand dieses Problem und evtl. eine Lösung?

Vielen Dank für die Mühe,
Michael

Verfasst: Donnerstag 31. Juli 2008, 20:16
von Pekh
Kannst du den Code zeigen, mit dem du durch die Ergebnisse gehst? Moeglicherweise wird dort etwas ausgelassen. Ansonsten koennten die '%'-Zeichen problematisch sein, aber wenn du zwei von drei moeglichen erhaelst ... weiss ich nicht recht.

Verfasst: Freitag 1. August 2008, 07:22
von Michael Schneider
Moin Pekh,
Pekh hat geschrieben:Kannst du den Code zeigen, mit dem du durch die Ergebnisse gehst? Moeglicherweise wird dort etwas ausgelassen.
Das kann ich gern machen. Aber diese Ursache kann ich ausschließen, da schon das Tupel, das ich vom Cursor-Objekt bekomme, nur zwei Elemente enthält. Dazu muss ich sagen, dass ich Dict-Cursor verwende, die ja in gewisser Form auch nachbearbeitet sind. Muss das mal mit den originalen Cursor-Objekten testen.

Danke für den Tipp, vielleicht gibt es ja noch Rettung. Momentan gefährdet dieser Umstand die Integrität meiner ganzen Anwendung. :-(

Gruß,
Michael

Verfasst: Freitag 1. August 2008, 09:02
von jens
Ist es evtl. ein escape Problem?
Wie übergibst du denn den like wert?

[gelöst] Problem gefunden: falscher Login

Verfasst: Freitag 1. August 2008, 09:13
von Michael Schneider
Vielen Dank für eure Mühe - aber das Problem saß mal wieder vor dem Bildschirm!

Ich habe die Datenbank vor kurzem umgezogen (alte Version existiert noch), aber die Logins nicht auf die neue DB umgeschrieben. Deshalb hat er den neuesten Eintrag nicht gefunden. Asche auf mein Haupt.

Übrigens, die abgebildete Query war die Bildschirmausgabe des an cursor.execute übergebenen Querystrings. Aber das tut ja nun nichts mehr zur Sache. :D

Es freut mich immer wieder zu sehen, wie schnell und hilfsbereit man hier anderen bei ihren Problemen hilft. Weiter so!

Grüße
Michel