MySQL query hilfe

1s440

Benutzer
Beiträge
23
Hallo zusammen, auf der Suche nach einem Vorschlag hier habe ich zwei column column a und column b in einer Tabelle. Ich habe Werte in column a und column b. Ich möchte alle Werte von Spalte a in Spalte b verschieben und wollte Spalte a leer machen. Wie kann ich das machen? ob der Update-Befehl funktioniert
 
Werbung:
das würde über UPDATE gehen, aber das gesamte Unterfangen klingt von Anfang bis Ende nach Bullshit. Was soll mit den Werten in Spalte b werden?
 
Code:
postgres=# create table doofe_idee(a int, b int);
CREATE TABLE
postgres=# copy doofe_idee from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself, or an EOF signal.
>> 1    3
>> 4    7
>> 2    1
>> 5    6
>> \.
COPY 4
postgres=# select * from doofe_idee ;
 a | b 
---+---
 1 | 3
 4 | 7
 2 | 1
 5 | 6
(4 rows)

postgres=# update doofe_idee set b=a, a = null;
UPDATE 4
postgres=# select * from doofe_idee ;
 a | b 
---+---
   | 1
   | 4
   | 2
   | 5
(4 rows)

postgres=#
 
Code:
postgres=# create table doofe_idee(a int, b int);
CREATE TABLE
postgres=# copy doofe_idee from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself, or an EOF signal.
>> 1    3
>> 4    7
>> 2    1
>> 5    6
>> \.
COPY 4
postgres=# select * from doofe_idee ;
 a | b
---+---
 1 | 3
 4 | 7
 2 | 1
 5 | 6
(4 rows)

postgres=# update doofe_idee set b=a, a = null;
UPDATE 4
postgres=# select * from doofe_idee ;
 a | b
---+---
   | 1
   | 4
   | 2
   | 5
(4 rows)

postgres=#
 
Also ich weiß nicht, woher das tm= kommt, aber ein Update kann auch Werte kombinieren:

für Zahlentypen:
set b= b+a
oder
set b= b*a

für Text:
set b=b||a
oder
set b = concat(b, "tm ", a)
 
Also ich weiß nicht, woher das tm= kommt, aber ein Update kann auch Werte kombinieren:

für Zahlentypen:
set b= b+a
oder
set b= b*a

für Text:
set b=b||a
oder
set b = concat(b, "tm ", a)
Danke Tm ist nur eine Variable, die ich für die Spalte a verwenden sollte. Kann ich also, bevor ich Update zum Testen ausführe, einfach wie
select concat (columb, tm=columa) verwenden?
 
können Sie mir sagen, wie ich in einer Spalte nach einer Zeichenfolge suchen und diese dann ersetzen kann

Fangen wir von hinten an: Ersetzen via UPDATE, suchen via WHERE.
Und von vorne:
UPDATE tabelle SET spalte = ... WHERE ...

Komplette Syntax (für PostgreSQL):

Code:
postgres=# \h update
Command:     UPDATE
Description: update rows of a table
Syntax:
[ WITH [ RECURSIVE ] with_query [, ...] ]
UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    SET { column_name = { expression | DEFAULT } |
          ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
          ( column_name [, ...] ) = ( sub-SELECT )
        } [, ...]
    [ FROM from_item [, ...] ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

URL: https://www.postgresql.org/docs/15/sql-update.html

postgres=#
 
Werbung:
Zurück
Oben