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.

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%';

16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]

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');

6

Das ist einfach

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.