Du könntest auch die komplette erste Query als Subquery in den `IN` Teil der zweiten einbauen. Damit überlässt Du dem RDBMS die Optimierung und sparst Dir den ganzen Aufwand.
Stimmt. Das ist eine super Idee. Vielen Dank. Und gleich noch Code eingespart. :-)
So hats funktioniert:
cursor ...
Die Suche ergab 8 Treffer
- Freitag 20. Mai 2011, 09:03
- Forum: Datenbankprogrammierung mit Python
- Thema: MySQL Abfrage mit SELECT ... WHERE ... IN ()
- Antworten: 5
- Zugriffe: 2416
- Freitag 20. Mai 2011, 08:54
- Forum: Datenbankprogrammierung mit Python
- Thema: MySQL Abfrage mit SELECT ... WHERE ... IN ()
- Antworten: 5
- Zugriffe: 2416
Re: MySQL Abfrage mit SELECT ... WHERE ... IN ()
@HugoB: Du musst die SQL-Anweisung dynamisch erstellen, so das für jedes Argument aus der Liste ein Platzhalter da steht. Also bei zwei IDs zum Beispiel "… IN (%s, %s)".
Ernsthaft? Das scheint mir sehr umständlich. Ich hatte gehofft, daß mir Python hier die Arbeit abnimmt und ich nicht erst alles ...
Ernsthaft? Das scheint mir sehr umständlich. Ich hatte gehofft, daß mir Python hier die Arbeit abnimmt und ich nicht erst alles ...
- Freitag 20. Mai 2011, 07:58
- Forum: Datenbankprogrammierung mit Python
- Thema: MySQL Abfrage mit SELECT ... WHERE ... IN ()
- Antworten: 5
- Zugriffe: 2416
MySQL Abfrage mit SELECT ... WHERE ... IN ()
Hallo,
ich hole mir aus einer MySQL Datenbank eine Liste mit 1-n IDs:
cursor.execute ("""SELECT DocType_ID FROM DocType WHERE DocType_Token = %s""", (TypeShort))
TypeIDs = cursor.fetchall()
Anschließend habe ich z. B.
TypeIDs = ((1L,), (3L,))
Jetzt muß ich in einer zweiten Abfrage die Anzahl ...
ich hole mir aus einer MySQL Datenbank eine Liste mit 1-n IDs:
cursor.execute ("""SELECT DocType_ID FROM DocType WHERE DocType_Token = %s""", (TypeShort))
TypeIDs = cursor.fetchall()
Anschließend habe ich z. B.
TypeIDs = ((1L,), (3L,))
Jetzt muß ich in einer zweiten Abfrage die Anzahl ...
- Freitag 29. April 2011, 10:34
- Forum: Datenbankprogrammierung mit Python
- Thema: Datum in MySQL DB schreiben
- Antworten: 2
- Zugriffe: 1398
Datum in MySQL DB schreiben
Hallo,
ich bin noch recht neue in Sachen Python. Mein aktuelles großes Problem:
Ich lese aus einer CSV Datei zwei Datumswerte (beide im Format DD.MM.YYY) und will sie in ein Date- und ein Timestamp-Feld einer MySQL Db schreiben.
Mein Versuch:
.....
File = csv.reader(open('I:\test.csv', 'rb ...
ich bin noch recht neue in Sachen Python. Mein aktuelles großes Problem:
Ich lese aus einer CSV Datei zwei Datumswerte (beide im Format DD.MM.YYY) und will sie in ein Date- und ein Timestamp-Feld einer MySQL Db schreiben.
Mein Versuch:
.....
File = csv.reader(open('I:\test.csv', 'rb ...
- Dienstag 29. März 2011, 15:05
- Forum: Datenbankprogrammierung mit Python
- Thema: executemany und ON DUPLICATE KEY UPDATE Problem
- Antworten: 1
- Zugriffe: 1494
Re: executemany und ON DUPLICATE KEY UPDATE Problem
Ich habe den Fehler selbst gefunden. Es ist ein Fehler in dem MySQLdb das ich installiert hatte. Ich habe mir aus dem CentOS 5 Testing Repository (http://dev.centos.org/centos/5/testing/x86_64/RPMS/) die 1.2.1 geholt und eingespielt - und sofort ging es.
- Dienstag 29. März 2011, 14:51
- Forum: Datenbankprogrammierung mit Python
- Thema: executemany und ON DUPLICATE KEY UPDATE Problem
- Antworten: 1
- Zugriffe: 1494
executemany und ON DUPLICATE KEY UPDATE Problem
Hallo,
ich möchte über MySQLdb und executemany einen "INSERT...ON DUPLICATE KEY UPDATE" ausführen lassen.
cursor.executemany("INSERT INTO User (User_ID, User_Name, First_Name, Last_Name, User_Title, Tel, E_Mail) VALUES (%s, %s, %s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE Tel=1", myCommandList ...
ich möchte über MySQLdb und executemany einen "INSERT...ON DUPLICATE KEY UPDATE" ausführen lassen.
cursor.executemany("INSERT INTO User (User_ID, User_Name, First_Name, Last_Name, User_Title, Tel, E_Mail) VALUES (%s, %s, %s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE Tel=1", myCommandList ...
- Dienstag 29. März 2011, 09:09
- Forum: Allgemeine Fragen
- Thema: setdefault + erstes Element aus einer Liste
- Antworten: 6
- Zugriffe: 1017
Re: setdefault + erstes Element aus einer Liste
get() ist genau was ich brauche. Vielen Dank. Ich hatte die Funktion zwar schon in der Doku gesehen, aber wohl übersehen, daß ich dort auch einen Default Wert mitgeben kann.
Aber noch aus Neugierde: Auch wenn setdefault() mehr macht, als ich brauche - würde es damit auch gehen? Ich hatte schon ...
Aber noch aus Neugierde: Auch wenn setdefault() mehr macht, als ich brauche - würde es damit auch gehen? Ich hatte schon ...
- Dienstag 29. März 2011, 08:47
- Forum: Allgemeine Fragen
- Thema: setdefault + erstes Element aus einer Liste
- Antworten: 6
- Zugriffe: 1017
setdefault + erstes Element aus einer Liste
Hallo,
ich bin noch neu in Sachen Python und stehe gerade vor folgendem Problem:
Ich habe ein dict, von dem ich nicht sicher sagen kann, ob alle Keys, die ich später verarbeiten muß, vorhanden sind. "setdefault" hilft mir hier schonmal bei meinem Problem. Hier mal ein vereinfachtes Codebeispiel ...
ich bin noch neu in Sachen Python und stehe gerade vor folgendem Problem:
Ich habe ein dict, von dem ich nicht sicher sagen kann, ob alle Keys, die ich später verarbeiten muß, vorhanden sind. "setdefault" hilft mir hier schonmal bei meinem Problem. Hier mal ein vereinfachtes Codebeispiel ...
