Wie kann man einem Spaltenwert in MySQL eine Zeichenfolge voranstellen?

122

Ich benötige eine SQL-Aktualisierungsanweisung zum Aktualisieren eines bestimmten Felds aller Zeilen mit einer Zeichenfolge "test", die vor dem vorhandenen Wert hinzugefügt werden soll.

Wenn der vorhandene Wert beispielsweise "try" lautet, sollte er zu "testtry" werden.

Santanu
quelle

Antworten:

260

Sie können dazu die CONCAT- Funktion verwenden:

UPDATE tbl SET col=CONCAT('test',col);

Wenn Sie klüger werden und nur Spalten aktualisieren möchten, denen noch kein Test vorangestellt ist, versuchen Sie es

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
Paul Dixon
quelle
16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
Ferdinand Beyer
quelle
Update TICKET set status_details = CONCAT (status _details, 'abc') wobei ticket_id = 75108; FEHLER 1583 (42000): Falsche Parameter beim Aufruf der nativen Funktion 'CONCAT'
nirmesh khandelwal
8

Viele Zeichenfolgenaktualisierungsfunktionen in MySQL scheinen folgendermaßen zu funktionieren: Wenn ein Argument lautet null, kehren nullauch Verkettungs- oder andere Funktionen zurück . Um ein Feld mit einem nullWert zu aktualisieren , setzen Sie es zunächst auf einen Wert ungleich Null, z''

Beispielsweise:

update table set field='' where field is null;
update table set field=concat(field,' append');
bvidinli
quelle
6

Das ist einfach

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
Soulmerge
quelle
Korrigieren Sie bis zur WHERE-Klausel, in der Sie den Test nur auf Spalten konzentrieren, die bereits mit test beginnen. Also: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom
0
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column1) wobei 1
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column2) wobei 1
  • UPDATE Tabellenname SET Column1 = CONCAT ('newtring', table_name.Column2, 'newtring2') wobei 1

Wir können dieselbe Spalte oder auch eine andere Spalte der Tabelle zusammenfassen.

user3419778
quelle