Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MYSQL查询中使用if条件_Mysql_Sql - Fatal编程技术网

在MYSQL查询中使用if条件

在MYSQL查询中使用if条件,mysql,sql,Mysql,Sql,MySQL查询的where子句中的IF条件是否会显著降低执行速度 以下是一个示例查询:- select * from alert_details_v adv where (if(day(last_day(now()))<DAY(adv.alert_date), day(last_day(now())),DAY(adv.alert_date))-adv.alert_trigger_days)<=day(now()); 警报日期:一些用户输入日期 警报触发天数:触发警报的实际日期之前

MySQL查询的where子句中的
IF
条件是否会显著降低执行速度

以下是一个示例查询:-

select * from alert_details_v adv
where (if(day(last_day(now()))<DAY(adv.alert_date),
day(last_day(now())),DAY(adv.alert_date))-adv.alert_trigger_days)<=day(now());
  • 警报日期
    :一些用户输入日期
  • 警报触发天数
    :触发警报的实际日期之前的天数
查询逻辑简介:- 在这里,我试图找出当前月份的最后一天是否小于
警报日期的那一天(数据库列)。无论哪一天到来都会被考虑

基本上,此表用于存储警报信息。因此,如果用户选择某个月的第30天,并且该警报每月重复出现,那么对于2月份,它将找不到第30天,因此不会显示该记录


我的问题是:如果表中有数十万条记录,where子句中带有if条件的查询(如上面的示例查询)是否会大大或略微减慢查询的执行速度

这可能完全取决于您的表和数据。有时可能有助于提高性能,有时可能会降低性能。

请提供一个带有表布局的查询示例。答案是“有时是,有时不是”。这个问题似乎“太宽泛”,因为可能的答案太多。请现在告诉我你的想法,如果需要更多信息,也请告诉我。谢谢,我的问题是,如果表中有10万条记录,where子句中带有if条件的查询(如上面的示例查询)是否会大大或略微降低查询的执行速度?请现在告诉我您的想法,以及是否需要更多信息。谢谢
alert_id  alert_date            alert_trigger_days
==================================================
1         2013-09-14 00:00:00   6
2         2013-09-13 00:00:00   5