SQL Update

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/sql_update_214631/page_1 - zur Vollversion wechseln!


bigjesus schrieb am 04.03.2010 um 10:33

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 schrieb am 04.03.2010 um 10:39

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 schrieb am 04.03.2010 um 10:48

Ist mir klar. Wollte wissen ob es möglich ist, mittels einem einzigen Update eine Feld doppelt zu befüllen?

Danke


mat schrieb am 04.03.2010 um 10:49

Ü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 schrieb am 04.03.2010 um 10:59

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 schrieb am 04.03.2010 um 11:04

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