in datenbank schreiben

Status
Nicht offen für weitere Antworten.

steff3

Bekanntes Mitglied
Code:
String sqlQ = "UPDATE Semester1 SET iPlaetze = 80 ";
stmt.executeUpdate(sqlQ);

das funktioniert ...
wie kann ich aber angeben, dass ich nicht die ganze Spalte überschreiben haben will?

sondern vlt. beim 3 und 10 eintrag oder so ähnlich
 
Hi,

du musst dein SQL-Statement um eine WHERE-Klausel erweitern. Nun weiss ich nicht, wie man den 3. oder 10. Datensatz bei dir finden kann. Am besten ist immer mit dem Primärschlüssel zu arbeiten. Der String sähe dann so aus:

Code:
String sqlQ = "UPDATE Semester1 SET iPlaetze = 80 WHERE ID = 3 OR ID = 10";

wobei ID der Schlüssel wäre.
 
ich habe aber keinen schlüssel gesetzt

und warum geht es nicht einfach zu sagen in spalte x in der zeile 7,2 und 13 bitte ändern?
 
steff3 hat gesagt.:
...
und warum geht es nicht einfach zu sagen in spalte x in der zeile 7,2 und 13 bitte ändern?

Frag die, die SQL entwickelt haben. 😀 Wahrscheinlich weil die "Zeilennummern" sich ändern können.

Wenn du keinen Schlüssel hast, dann musst du eben ein anderes einmaliges Kriterium finden, dass die Datensätze kennzeichnet. Wie sieht denn sie Struktur der Tabelle aus?
 
Caffè Latte hat gesagt.:
steff3 hat gesagt.:
...
und warum geht es nicht einfach zu sagen in spalte x in der zeile 7,2 und 13 bitte ändern?

Frag die, die SQL entwickelt haben. 😀 Wahrscheinlich weil die "Zeilennummern" sich ändern können.

Wenn du keinen Schlüssel hast, dann musst du eben ein anderes einmaliges Kriterium finden, dass die Datensätze kennzeichnet. Wie sieht denn sie Struktur der Tabelle aus?

bevor ich groß erkläre...
so4sm.jpg
 
Hi,

das eindeutige Feld wäre dann wohl "SSportkurs". Also würde dasSQL-Statement dann so lauten:

Code:
UPDATE Semester1 SET iPlaetze = 80 WHERE SSportkurs = 'Fussball' OR SSportkurs = 'Leichtatlethik'

Wenn du z.B. die dritte Zeile akualisieren willst, dann musst du ja wissen warum, also dass es sich dort um Volleyball handelt. Ggf. musst du SSportart eben vorher abfragen. In der Praxis hängt die Teilnehmerzahl aber nicht von der Sportart sondern den Räumlichkeiten u.ä. ab.
 
Caffè Latte hat gesagt.:
Hi,

das eindeutige Feld wäre dann wohl "SSportkurs". Also würde dasSQL-Statement dann so lauten:

Code:
UPDATE Semester1 SET iPlaetze = 80 WHERE SSportkurs = 'Fussball' OR SSportkurs = 'Leichtatlethik'

Wenn du z.B. die dritte Zeile akualisieren willst, dann musst du ja wissen warum, also dass es sich dort um Volleyball handelt. Ggf. musst du SSportart eben vorher abfragen. In der Praxis hängt die Teilnehmerzahl aber nicht von der Sportart sondern den Räumlichkeiten u.ä. ab.

naja es stehen nur x plätze für jede sportart zur verfügung und das ist festgelegt...

zu dem wort Leichtathletik sag ich mal nichts :meld:
 
@steff3: am klügsten wäre wenn du dir einen Primary Key verschaffst möglichst unique ansonsten ensteht schnell eine inkonsistente RDB! (MySql ist auch nur für Testzwecke der Burner... Nutz lieber Postgres das ist auch OpenSource!)

Auf deine Frage aber nochmal zurückzukommen:

um sich die OR's zu ersparen nutzt man die IN Syntax, das geht besser und ist übersichtlicher aber ansonsten hat Caffé Latte recht. 😉

IN Syntax:

Code:
WHERE Ssportkurs IN ( Fussball, Leichtathletik )
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben