티스토리 뷰

반응형

-- dbchandj.material_lot definition

CREATE TABLE `material_lot` (
  `num` int NOT NULL AUTO_INCREMENT,
  `registedate` date NOT NULL,
  `lotnum` varchar(30) NOT NULL,
  `is_deleted` tinyint DEFAULT NULL,
  `searchtag` text,
  `update_log` text,
  PRIMARY KEY (`num`)
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8;

 



위의 lotnum = 'DH-B-0424-0426' 형태로 저장되어 있다.
마지막의 5자리 '-0426'를 제거하고 저장하고 싶은데, sql 명령어는?
ChatGPT
lotnum에서 마지막 5자리를 제거하고 업데이트하려면 다음과 같은 SQL 명령어를 사용할 수 있습니다:

UPDATE material_lot
SET lotnum = LEFT(lotnum, LENGTH(lotnum) - 5)
WHERE RIGHT(lotnum, 5) = '-0426';
이 명령어는 다음과 같은 과정을 따릅니다:

lotnum의 길이에서 5를 뺀 만큼 왼쪽부터 자른 문자열로 lotnum을 업데이트합니다.
lotnum의 마지막 5자리가 '-0426'인 경우에만 업데이트를 수행합니다.
위 명령어를 실행하면 lotnum이 'DH-B-0424-0426' 형태일 때 마지막 5자리 '-0426'를 제거하고 저장할 수 있습니다.

WHERE RIGHT(lotnum, 5) = '-0426'; 이 구문을 빼면 전체의 5자리를 제거하는 효과가 있는가?
ChatGPT
네, WHERE 절을 제거하면 모든 lotnum에서 마지막 5자리를 제거하는 효과가 있습니다. 아래와 같이 SQL 명령어를 사용할 수 있습니다:


UPDATE material_lot
SET lotnum = LEFT(lotnum, LENGTH(lotnum) - 5);
이 명령어는 lotnum 컬럼의 모든 값에 대해 마지막 5자리를 제거합니다. WHERE 조건이 없으므로, 모든 행에 대해 적용됩니다. 이 경우, 모든 lotnum 값에서 마지막 5자리를 제거하는 업데이트가 수행됩니다.

 

UPDATE material_lot
SET lotnum = LEFT(lotnum, LENGTH(lotnum) - 5);
반응형
댓글