MySQL'de bir sütun değerinin başına bir dize nasıl eklenir?


123

Tüm satırların belirli bir alanını mevcut değerin önüne eklenecek bir "test" dizesiyle güncellemek için bir SQL güncelleme ifadesine ihtiyacım var.

Örneğin, mevcut değer "dene" ise, "deneme" olmalıdır.

Yanıtlar:


261

Bunu yapmak için CONCAT işlevini kullanabilirsiniz:

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

Daha akıllı olmak ve yalnızca önceden test edilmemiş sütunları güncellemek istiyorsanız, deneyin

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

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

TICKET'i güncelle status_details = CONCAT (durum _details, 'abc') olarak ayarlayın; burada ticket_id = 75108; HATA 1583 (42000): 'CONCAT' yerel işlevi çağrısında yanlış parametreler
nirmesh khandelwal

9

MySQL'deki birçok dize güncelleme işlevi şu şekilde çalışıyor gibi görünüyor: Bir bağımsız değişkense, nullbirleştirme veya diğer işlevler de geri döner null. Bu nedenle, bir alanı nulldeğerle güncellemek için önce onu boş olmayan bir değere ayarlayın, örneğin''

Örneğin:

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

6

Bu çok basit

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

Zaten test ile başlayan sütunlara yalnızca concat testi yaptığınız WHERE yan tümcesine kadar düzeltin. So: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom

0
  • UPDATE table_name SET Sütun1 = CONCAT ('newtring', table_name.Column1) burada 1
  • UPDATE table_name SET Sütun1 = CONCAT ('newtring', table_name.Column2) burada 1
  • GÜNCELLEME tablo_adı SET Sütun1 = BİRLEŞTİR ('newtring', tablo_adı.Column2, 'newtring2') burada 1

Tablonun aynı sütununu veya başka bir sütununu birleştirebiliriz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.