SQL Update
bigjesus 04.03.2010 - 10:33 1125 5
bigjesus
Addicted
|
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
|
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
|
Ist mir klar. Wollte wissen ob es möglich ist, mittels einem einzigen Update eine Feld doppelt zu befüllen?
Danke
|
mat
AdministratorLegends never die
|
Ü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
|
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
|
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
|