programing

MariaDB에서 선택한 행의 도움을 받아 열 값을 업데이트하려면 어떻게 해야 합니까?

copysource 2022. 9. 22. 23:06
반응형

MariaDB에서 선택한 행의 도움을 받아 열 값을 업데이트하려면 어떻게 해야 합니까?

MariaDB는 처음입니다.

자리가 있어요.각 행에는 고유한 유효성이 있습니다.

CREATE TABLE `tariff_table` (
  `transportation_id` int(11) NOT NULL AUTO_INCREMENT,
  `transporter` varchar(300) NOT NULL,
  `valid_upto` date NOT NULL,
  `expired_status` int(11) NOT NULL DEFAULT '0',
  `status` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`transportation_id`)
  )

표 결과:

tariff_id || transporter || valid_upto || expired_status || status   
------------------------------------------------------------------
1         || Raj         || 2014-12-08 ||             0  ||     0
2         || Ram         || 2015-01-10 ||             0  ||     0
3         || Mani        || 2014-03-06 ||             0  ||     0
4         || Mano        || 2015-04-15 ||             0  ||     0

요구 사항은 선택 쿼리를 사용하여 만료된 상태를 업데이트하려면 어떻게 해야 합니까?

select tariff_id from tariff_table where valid_upto <= DATE(now());

쿼리 리턴 2 행을 선택합니다.

tariff_id
---------
1
3

id의 도움을 받아 아래와 같이 업데이트해야 합니다.

아래 결과가 필요합니다.

tariff_id || transporter || valid_upto || expired_status || status   
------------------------------------------------------------------
1         || Raj         || 2014-12-08 ||             1  ||     0
3         || Mani        || 2014-03-06 ||             1  ||     0   

도와줘.

를 사용할 수 있습니다.UPDATE다음과 같은 스테이트먼트를 나타냅니다.

UPDATE `tariff_table`
SET `expired_status` = 1
WHERE valid_upto <= DATE(now());

사용하다IN키워드를 지정합니다.

UPDATE tariff_table SET expired_status = 1 WHERE tariff_id 
IN(select tariff_id from tariff_table where valid_upto <= DATE(now()))

또는

UPDATE tariff_table SET expired_status = 1 WHERE valid_upto <= DATE(now())

언급URL : https://stackoverflow.com/questions/27372769/how-to-updated-a-column-value-with-the-help-of-selected-row-rows-in-mariadb

반응형