SQL-Abfrage frage (SELECT)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kalysto
User
Beiträge: 117
Registriert: Freitag 14. April 2017, 15:28

Hallo zusammen,

Ich habe eine Frage ob man diese Code "schöner" gestallten könnte von der Abfrage:

Code: Alles auswählen

self.cur.execute("SELECT `company` FROM `customers` WHERE `ID` = '{}'".format(selectedProjekt))
for companyTemp in self.cur:
    selectedProjekt = ''.join(str(x) for x in companyTemp)
ich bekomme es nicht anders hin ohne bei solch einer Abfrage mit for und join zu arbeiten....
gibt es hierzu alternativen ?

denn wenn jetzt z.b. "companyTemp" leer wäre bekomme ich immer eine Fehlermeldung weil es nicht wiederholbar ist....

wäre nett wenn mir wer helfen könnte ;)

p.s. @Sirius3, @__blackjack__ wenn ihr das sehen sollte ich weis ich Formatiere noch bin aber dabei es zu ändern :)
Benutzeravatar
__blackjack__
User
Beiträge: 14055
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Kalysto: Also erst einmal formatiert man Werte nicht in SQL-Zeichenketten. Das ist im besten Fall unperformant oder schlicht kaputt, im schlechtesten Fall gefährlich. Wenn Du weisst das man das nicht macht, dann mach das doch auch nicht.

Dann ist `selectedProject` hier einmal eine Datensatz-ID und einmal eine Firma/ein Firmenname‽ Der gleiche Name sollte im gleichen Namensraum nicht für so unterschiedliche Dinge verwendet werden.

Bei einer Abfrage die auf eine *ID* eingegrenzt wird, würde ich erwarten, dass es da nur *ein* Ergebnis gibt. Da ist die Schleife also überraschend und damit wohl falsch. Wenn es nur *einen* Ergebnisdatensatz gibt, fragt man das mit der dafür vorgesehenen Methode vom `Cursor`-Objekt ab.

Dann macht dieses umwandeln in eine Zeichenkette und die dann noch mal Zeichen für Zeichen in die gleiche Zeichenkette zusammenzusetzen, so überhaupt gar keinen Sinn. Du hast dann eine Zeichenkettenrepräsentation von einem Objekt von dem man im Grunde nicht einmal garantiert weiss was für einen konkreten Typ das hat und die dessen Zeichenkettenrepräsentation überhaupt aussieht.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Kalysto
User
Beiträge: 117
Registriert: Freitag 14. April 2017, 15:28

Da bin ich gerade dabei zu ändern was ihr mir sagtet das war noch eine "Alte"
Antworten