piet: spezielles Feld eines Records verändern

Hallo,

Greenhorn in Sachen Datenbank hat ne Frage.
Wie kann ich z.B. vom ersten (einzigen) Record in der Datenbank das Feld in der 4 Spalte verändern.

z.B.

Feld1   |   Feld2   | Feld3 usw
  12         13         14

Nun möchte ich das 2. Feld (Feld2) im ersten Datensatz (ist der einzige) der Tabelle xy umschreiben...per SQL Anweisung. Geht so etwas überhaupt, einen Datensatz (first) anwählen.

Danke
       piet

  1. Hello,

    Nun möchte ich das 2. Feld (Feld2) im ersten Datensatz (ist der einzige) der Tabelle xy umschreiben...per SQL Anweisung. Geht so etwas überhaupt, einen Datensatz (first) anwählen.

    Nö, denn SQL kennt keine feste Reihenfolge für Datensätze (Zeilen). Die kommen bei einer Abfrage so, wie das System es gerade für praktisch hält (für sich). Eine Reihenfolge kann man nur über eine definiertre Angabe einer Ordnung erreichen.

    Speziele Datensätze werden über ihren Primary Key oder über eine genügend eingrenzende Bedingungsanreihung geholt bzw. gefunden.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

  2. Hallo,

    Wie kann ich z.B. vom ersten (einzigen) Record in der Datenbank das Feld in der 4 Spalte verändern.

    Das Feld MUSS einen Namen haben, z.B. 'spalte_4':

    UPDATE tabellennname SET spalte_4=1

    das macht die DB dann in ALLEN Sätzen.

    Nun möchte ich das 2. Feld (Feld2) im ersten Datensatz (ist der einzige) der Tabelle xy umschreiben...per SQL Anweisung. Geht so etwas überhaupt, einen Datensatz (first) anwählen.

    Nur, wenn du den Datensätzen ein auto_increment - Feld (z.B. 'id') gegeben hast, dann hat der zuerst eingegebene Satz die kleinste Nummer:

    UPDATE   xy SET feld2=1
    ORDER BY id        # sortiert nach Eingabe-Reihenfolge
    LIMIT    0,1       # nimmt nur einen Datensatz (den ersten)

    schaust du hier genau:
    http://dev.mysql.com/doc/refman/5.0/en/update.html

    Lieben Gruß aus Birkenau, Kalle

    1. Hi,

      ORDER BY id        # sortiert nach Eingabe-Reihenfolge

      ähm, na ja, also, da würde ich mir schon das zu Herzen nehmen was Tom gesagt hat bzw. was an anderer Stelle häufig erwähnt ist. Datensätze in der Tabelle sind zunächst mal ohne Reihenfolge. Um sie eindeutig zu identifizieren vergibt man einen Primärschlüssel, im Fall der id eine künstliche Spalte, in anderen Fällen mag auch ein bestimmter tatsächlicher Wert eindeutig für alle Sätze sein. Dass man eine id als Auto-Increment deklariert heißt aber definitiv _NICHT_, dass die IDs in einer Reihenfolge vergeben werden müssen die immer aufsteigend ist. Dies gilt für die ersten Datensätze höchstwahrscheinlich (da Lücken zunächst nicht wieder ausgenutzt werden), aber spätestens wenn der Wert einmal überläuft geht es von vorne wieder los.
      Also kurz gesagt: Ja, in den meisten Fällen wird die Sortierung auf der ID funktionieren, eine Gewähr gibt es aber dafür ebenso wie dafür, dass bei einem SELECT * die Spalten in der gewünschten Reihenfolge rauskommen...

      MfG
      Rouven

      --
      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(