Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 5일이 지난 모든 행 삭제

<시간/>

5일이 지난 모든 행을 삭제하려면 다음 구문을 사용할 수 있습니다. -

datediff(now(), yourTableName.yourDateColumnName)> 5인 yourTableName에서 삭제

참고 − 현재 날짜가 2019-03-10이라고 가정해 보겠습니다.

개념을 이해하기 위해 테이블을 만들어 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> create table deleteRowsOlderThan5Demo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(100), -> Post_Date date -> );쿼리 OK, 영향을 받는 행 0개(0.69초)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('Larry','2019-03-11');Query OK, 영향을 받는 행 1개(0.12초)mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values( 'Mike','2019-02-12');쿼리 OK, 1행 영향(0.17초)mysql> deleteRowsOlderThan5Demo(Name,Post_Date) values('Sam','2019-03-10')에 삽입, 쿼리 OK , 영향을 받은 1개 행(0.12초)mysql> deleteRowsOlderThan5Demo(Name,Post_Date) values('Carol','2019-03-01'); 쿼리 확인, 영향을 받은 1개 행(0.23초)mysql> deleteRowsOlderThan5Demo(Name)에 삽입 ,Post_Date) values('David','2019-01-31');쿼리 OK, 1행 영향(0.19초)mysql> deleteRowsOlderThan5Demo(Name,Post_Date) values('Maxwell','2019-01-26에 삽입) ');쿼리 OK, 1행 영향(0.10초)mysql> insert into deleteRowsOlderThan5Demo(Name,Post_Date) values('John','2019-02-19');쿼리 OK, 1행 영향(0.12초) 

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from deleteRowsOlderThan5Demo;

다음은 출력입니다 -

+----+---------+------------+| 아이디 | 이름 | Post_Date |+----+---------+------------+| 1 | 래리 | 2019-03-11 || 2 | 마이크 | 2019-02-12 || 3 | 샘 | 2019-03-10 || 4 | 캐롤 | 2019-03-01 || 5 | 데이비드 | 2019-01-31 || 6 | 맥스웰 | 2019-01-26 || 7 | 존 | 2019-02-19 |+----+---------+------------+7행 세트(0.00초)

다음은 5일보다 오래된 모든 행을 삭제하는 쿼리입니다. -

mysql> deleteRowsOlderThan5Demo에서 삭제 -> 여기서 datediff(now(), deleteRowsOlderThan5Demo.Post_Date)> 5;쿼리 확인, 5개 행이 영향을 받았습니다(0.14초)

테이블 레코드를 다시 한 번 확인해보자. 쿼리는 다음과 같습니다 -

mysql> select *from deleteRowsOlderThan5Demo;

다음은 출력입니다 -

+----+-------+------------+| 아이디 | 이름 | Post_Date |+----+-------+------------+| 1 | 래리 | 2019-03-11 || 3 | 샘 | 2019-03-10 |+----+-------+------------+2행 세트(0.00초)