2011-12-19 4 views
2

에서 CONCAT를 사용하기 전에 내가 현장에서 쉼표로 구분 된 목록을 만들려고하고 있어요,하지만 어떤 경우에는확인 내용 MySQL의 업데이트 문

`fieldName`=concat(`FieldName`, ',NEW DATA') 

을 다음과 같이 CONCAT를 사용하여 데이터베이스에서 필드를 업데이트하고 같은

item 1, item 2, item 3 

그러나 나는 이것이 내가 선행하는 데, 또는 쉼표 후행 피할 수없는 분야의 첫 번째 항목 인 경우 필드가 손 전에 비어 있는지 알지 못한다.

,item 1, item 2...etc 

또는

item 1, item 2, ... etc 

내가 따로 쿼리를 데이터베이스를 피하기 위해 업데이트 문 내에서, 데이터를 추가하기 전에 필드 콘텐츠가 있는지 확인 할 수있는 방법이 있나요?

... 또는 쉼표로 구분 된 목록을 만드는 더 좋은 방법입니다. columnName를의 길이가 1 다음 더 큰 경우 쉼표을 넣을 수 있도록, 그렇지 않으면 당신은 단지 새를 넣어, 데이터가 columName에있다,

update tableName 
set columnName = 
    case when LENGTH(columnName) > 1 
    then select concat(columnName, ',NEW DATA') 
    else select 'NEW DATA' end 

:

답변

1

예,이 같은 case 식을 사용 데이터.

+0

감사합니다. @aF 완벽 해 보이지만 구문 오류가 발생합니다. 여러 필드를 한 번에 업데이트하려고 시도 중입니다. UPNATE tableName SET mobile = ' "& mobile &"', invoiceList = len (invoiceList)> 1 일 때 concat (invoiceList, ', "& currentInvoiceNumber &"') else ' "& currentInvoiceNumber &" 'end' 관련된 스 니펫입니다. "len 근처의 구문 확인 ( –

+0

@JamieHartnoll 길어보기 (길이 : –

+0

) 감사합니다! –