Mysql 选择过期产品的不同方法

Mysql 选择过期产品的不同方法,mysql,sql,laravel,database-design,database-performance,Mysql,Sql,Laravel,Database Design,Database Performance,创建产品时,请创建过期日期: SELECT * FROM products WHERE expiry_at > NOW(); 使用任务计划程序禁用产品: SELECT * FROM products WHERE active = '1'; 选择在30天内创建的产品: SELECT * FROM products WHERE created_at > DATE(NOW() - INTERVAL 30 DAY); 未来,产品的持续时间可能为60天 基于性能、可扩展性等因素,这些方法

创建产品时,请创建过期日期:

SELECT * FROM products WHERE expiry_at > NOW();
使用任务计划程序禁用产品:

SELECT * FROM products WHERE active = '1';
选择在30天内创建的产品:

SELECT * FROM products WHERE created_at > DATE(NOW() - INTERVAL 30 DAY);
未来,产品的持续时间可能为60天


基于性能、可扩展性等因素,这些方法的优缺点是什么?你有什么经历?还有其他方法吗?

总的来说,最有用的方法肯定是

SELECT * FROM products WHERE created_at > DATE(NOW() - INTERVAL 30 DAY);
因为您可以轻松更改过期时间间隔

您还可以在db或app param中的适当表中使用参数或值存储,或者使用var来使用sql中未编码的更简单的过期时间间隔。。例如:

 SELECT * FROM products WHERE created_at > CURDATE() - INTERVAL @days DAY;

这3个查询执行3种不同的操作。你在比较什么???