"We are back" « oc.at

SQL Update

bigjesus 04.03.2010 - 10:33 1125 5
Posts

bigjesus

Addicted
Avatar
Registered: Oct 2001
Location: Wien
Posts: 390
Hab' ne sehr allgemeine Frage:

Die Syntax zum befüllen eines Feldes einer Tabelle wäre ca so:

UPDATE Tabellenname SET Feldname = '' where tabellenname.id=''

z.B.

mehrere Felder befüllen:

UPDATE Tabellenname SET Feldname = '', SET Feldname2='' where tabellenname.id=''

Würde nun gerne ein Feld mit zwei Informationen befüllen, z.B.
Tasteneingabe plus Datum und Zeit, getrennt durch einen Schrägstrich. Wie sieht da die Syntax dann aus, bzw. ist dies überhaupt möglich.

Also Ergebnis hätt ich dann im Feld: '%tastatureingabe'/20100101/12:22

Wie verschachtelt man so etwas in die Richtung in einer einzelnen Update Anweisung?

Crash Override

BOfH
Registered: Jun 2005
Location: Germany
Posts: 2951
Das solltest du eine Ebene höher im Programm machen und nicht in SQL. Einfach eine neue Variable wo dein komlpetter Sting drinsteht an SQL übergeben anstatt nur die Variable für die Tastatureingabe.

bigjesus

Addicted
Avatar
Registered: Oct 2001
Location: Wien
Posts: 390
Ist mir klar. Wollte wissen ob es möglich ist, mittels einem einzigen Update eine Feld doppelt zu befüllen?

Danke

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25520
Über eine High-Level-Sprache (wie PHP) zu gehen, ist definitiv die leichtere Lösung. Nicht vergessen, dass der Inhalt von Variablen validiert und escaped werden muss, sonst könnte dir eine SQL Injection das Leben schwer machen.

quilty

Ich schau nur
Avatar
Registered: Jul 2005
Location: 4202
Posts: 3090
Also ein UPDATE auf meherer Columns sieht mal sicher anders aus als von dir beschrieben. Du hast zuviele SET.

UPDATE Tabelle
SET Feldname1=Wert1, Feldname2=Wert2, ...
WHERE irgendwas=irgendwas_anderes

Konkatenieren hängt ein bisschen davon ab welche DB du verwendest. CONCAT(Wert1, Wert2) ist mal ein heißer Tipp. Manche DBMS erlauben auch + zum konkatenieren.

Einmal ganz davon abgesehen, dass dies eigentlich der Datenlayer deiner Anwendung machen soll, würde ich so etwas niemals machen in einer DB. Mach doch zwei Spalten, dann schaffst du zumindest die erste Normalform.

bigjesus

Addicted
Avatar
Registered: Oct 2001
Location: Wien
Posts: 390
Ja, ein SET war zu viel, hab nur schnell getippt, ging eher um den Sinn. Danke für eure Antworten und Input, werd mich mal genauer damit befassen.

E: Werd eine zweite Spalte anlegen, mein Idee wäre wohl etwas unsauber.
Bearbeitet von bigjesus am 04.03.2010, 11:07
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz