Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
Php MySQL比较日期不会返回结果_Php_Mysql - Fatal编程技术网

Php MySQL比较日期不会返回结果

Php MySQL比较日期不会返回结果,php,mysql,Php,Mysql,我需要一个人帮忙。根据某些情况,我无法使用PHP和MySQL从表中获取值。我在下面解释我的表格 db_子目录: 这里有些行没有from_date和to_date值。我在下面解释我的查询 $date="2016-10-23"; $sql="select * from db_subcat where from_date <='".$date."' and to_date >= '".$date."' and from_date !='' and to_date !=''

我需要一个人帮忙。根据某些情况,我无法使用PHP和MySQL从表中获取值。我在下面解释我的表格

db_子目录:

这里有些行没有from_date和to_date值。我在下面解释我的查询

$date="2016-10-23";
$sql="select * from db_subcat 
    where from_date <='".$date."' and to_date >= '".$date."' and from_date !='' and to_date !='' 
    group by subcat_id 
    union all select * from db_basic 
    where from_date ='' and to_date ='' 
    group by sucat_id";
这里我的问题是,当表中没有from_date=和to_date=或from_date!=到目前为止。这里我需要使用以下所有条件获取值

1-如果from_date和to_date有值,如果值存在,则它将匹配

2-如果from_date和to_date对这两个条件都有值或为空,则应获取值

3-如果表中没有from_date=和to_date=或from_date!=到目前为止


请帮助我解决此问题。

如果我正确理解了您的意思,您可能需要使用ISNULL,您可以将两个查询组合起来:

select * from db_subcat
where ((from_date IS NULL OR from_date ='') AND (to_date IS NULL OR to_date =''))
   OR (from_date <='".$date."' and to_date >= '".$date."') 
group by subcat_id

注意,除了MySQL之外,GROUPBY子句在所有DBMS中都是无效的。您不应该使用SELECT*语句来执行此操作,而应该始终指定列,并且每个列都应该位于GROUP BY子句中,或者在其周围包装一个聚合函数。

您能告诉我们db_basic table的结构和数据是什么吗?@d.coder:我在帖子中提到了该表。实际上,我需要所有sub_名称组按sub_id按匹配日期都是日期字段有值,否则它将不会。到目前为止,该查询工作正常,但问题是当该表没有任何行属于from_date=和to_date=或from_date!=到目前为止没有值。请让我测试它并让您知道。我已测试,但当表中有关于from_date=和to_date=以及from_date!=到目前为止它不起作用。它仅获取与日期值匹配的数据。这就是我使用union的原因。不过,不需要union,现在就试试吧@苏布拉。此查询返回什么?似乎在所有必需条件下都可以正常工作。谢谢。没问题,mate@subhra
select * from db_subcat
where ((from_date IS NULL OR from_date ='') AND (to_date IS NULL OR to_date =''))
   OR (from_date <='".$date."' and to_date >= '".$date."') 
group by subcat_id