MySQL의 기존 필드에 문자열을 어떻게 추가 할 수 있습니까?


101

내 모든 레코드의 코드를 현재 상태와 _standard 아이디어로 업데이트하고 싶습니다.

예를 들어 코드가 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

답변:


224

CONCAT()문자열 연결을 위해 MySQL 의 함수 를 사용해야합니다 .

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

61
누군가 내가했던 것과 같은 문제가 발생하는 경우를 대비하여 : 필드 code가 기본적으로 NULL 이면 사용해야합니다. UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;그렇지 않으면 concat이 항상 NULL이됩니다.
Kai Noack 2015 년

3
또는 NULL 값을 건너 뛰는 CONCAT_WS를 사용할 수 있습니다. 예를 들어 SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); '이름, 성'제공
BarneySchmale

@Daniel 위의 의견에 따라 답변을 업데이트하는 것은 어떻습니까?
kiedysktos

특별 / 수 null의 경우에 대한 별도의 질문 : 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.