Jak dołączyć ciąg znaków do wartości kolumny w MySQL?


123

Potrzebuję instrukcji aktualizacji SQL do aktualizacji określonego pola we wszystkich wierszach z ciągiem „test”, który należy dodać na początku istniejącej wartości.

Na przykład, jeśli istniejąca wartość to „try”, powinna stać się „testtry”.

Odpowiedzi:


261

Aby to zrobić, możesz użyć funkcji CONCAT :

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

Jeśli chcesz uzyskać sprytniejszy i aktualizować tylko kolumny, które nie mają jeszcze dołączonego testu, spróbuj

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';

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

aktualizacja TICKET set status_details = CONCAT (status _details, 'abc') gdzie ticket_id = 75108; BŁĄD 1583 (42000): Niepoprawne parametry w wywołaniu funkcji natywnej „CONCAT”
nirmesh khandelwal

9

Wygląda na to, że wiele funkcji aktualizujących ciągi znaków w MySQL działa w następujący sposób: jeśli jeden argument to null, to konkatenacja lub inne funkcje nullrównież powracają . Aby więc zaktualizować pole o nullwartość, najpierw ustaw je na wartość inną niż null, na przykład''

Na przykład:

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

6

To jest proste

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

Popraw aż do klauzuli WHERE, gdzie można konkatować test tylko z kolumnami już zaczynającymi się od test. Więc: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom

0
  • UPDATE nazwa_tabeli SET Kolumna1 = CONCAT ('nowy ciąg', nazwa_tabeli.Columna1) gdzie 1
  • UPDATE nazwa_tabeli SET Kolumna1 = CONCAT ('nowy ciąg', nazwa_tabeli.Columna2) gdzie 1
  • UPDATE nazwa_tabeli SET Kolumna1 = CONCAT ('ciąg_nowy', nazwa_tabeli.Columna2, 'ciąg_nowy2') gdzie 1

Możemy połączyć tę samą kolumnę lub też inną kolumnę tabeli.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.