MySQLの既存のフィールドに文字列を追加するにはどうすればよいですか?


101

すべてのレコードのコードを現在のコードに更新したい_標準アイデアはありますか?

たとえば、コードがapple_1とapple_2の場合、apple_1_standardとapple_2_standardにする必要があります

前:

id   code
------------
1    apple_1 
1    apple_2

疑似クエリ:

update categories set code = code + "_standard" where id = 1;

期待される結果:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard

回答:


223

CONCAT()文字列の連結には、MySQL の関数を使用する必要があります。

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;

60
誰かが私と同じ問題に遭遇した場合に備えて:フィールドcodeがデフォルトでNULLのUPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;場合、使用する必要があります。それ以外の場合、連結は常にNULLになります。
カイノアック

3
または、NULL値をスキップするCONCAT_WSを使用できます。たとえば、SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); 「名、姓」
BarneySchmale

@Daniel上記のコメントに従って回答を更新してみませんか?
kiedysktos 2017年

可能なヌルの場合のための特別な/個別の質問:stackoverflow.com/questions/14020867/...
qdinar

0

nullフィールドを無視して、画像フィールドを更新して完全なURLを追加します。

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.