mysql delete using,MySQL delete from database where

可以将文章内容翻译成中文,广告屏蔽插件会导致该功能失效:

问题:

Within my database, I have a large number of tables which contain dates. These are expiry dates to be precise.

Currently, I perform the following commands to remove any rows which are older than a specified date using:

DELETE FROM tablename WHERE DATE(datepoint) < '2019-03-18'

1) Is there a way I can instead search and delete from an entire database instead of manually changing the table name and running the command each time?

回答1:

You could use a PHP function, Anyway I wouldn't recommend deleting any records, just filter your queries for the last 3 months only

回答2:

Perhaps consider having expiry dates in their own table EXPIRY_DATES. It sounds like it could be an important concept in your domain. Then have your other tables point to the correct expiry date using a foreign key. Using on delete cascade rules from EXPIRY_DATES would clean out records from all child tables when you delete one expiry date from EXPIRY_DATES.

回答3:

you shoould use procedure (or function):

Define a procedure :

mysql> CREATE PROCEDURE delete_from_table(OUT table_name char(20))

-> BEGIN

-> delete from table_name WHERE DATE(datepoint) < '2019-03-18';

-> END//

mysql> delimiter ;

CALL procedure :

mysql> CALL delete_from_table(@table1);

mysql> CALL delete_from_table(@table2);

mysql> CALL delete_from_table(@table3);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值