URL: https://www.overclockers.at/coding-stuff/sql_update_214631/page_1 - zur Vollversion wechseln!
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?
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.
Ist mir klar. Wollte wissen ob es möglich ist, mittels einem einzigen Update eine Feld doppelt zu befüllen?
Danke
Ü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.
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.
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.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025