Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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 选择一个大于当前日期的日期_Php_Mysql - Fatal编程技术网

Php 选择一个大于当前日期的日期

Php 选择一个大于当前日期的日期,php,mysql,Php,Mysql,我有一个MySQL数据库表,其中一个单元格包含多个日期,我想选择包含一个单元格的所有行,其中一个或多个日期大于今天的日期。这可能吗?如果字段是可以使用的日期或日期时间,则使用PHP SELECT * FROM table WHERE datefield > NOW() 如果字段是日期或日期时间,则可以使用 SELECT * FROM table WHERE datefield > NOW() 当然可以: 您的单个字段如何包含多个日期?也许你应该考虑一个单独的表格来代替这个。 <

我有一个MySQL数据库表,其中一个单元格包含多个日期,我想选择包含一个单元格的所有行,其中一个或多个日期大于今天的日期。这可能吗?如果字段是可以使用的日期或日期时间,则使用PHP

SELECT * FROM table WHERE datefield > NOW()
如果字段是日期或日期时间,则可以使用

SELECT * FROM table WHERE datefield > NOW()
当然可以:

您的单个字段如何包含多个日期?也许你应该考虑一个单独的表格来代替这个。

< P>确定:


您的单个字段如何包含多个日期?也许你应该考虑一个单独的表来代替它。

如果你只在一个日期而不是一个DATE时间,你可以使用CurDATE而不是现在的

如果你只在一个日期而不是一个DATE时间,你可以使用CurDATE而不是现在

< P>一个单元格包含多个日期。这是问题的症结所在。这里有三种选择

规范化/修复模式 从一个充分规范化的模式开始——特别是,任何列/单元格最多只能有一个日期或一条信息。根据信息的作用,这可能需要也可能不需要引入另一个表

这种方法是可伸缩的,并且在RDMBS/RA设计中起作用,如果这样做,其他查询也会起作用

这是迄今为止最好的选择,如果可能的话,应该这样做。适当的规范化还应该指导进一步的模式开发,以缓解未来的此类问题

创建规范化视图 创建非规范化表的规范化视图,或创建可以联接的规范化查询。然后使用各种建议答案中的一个,这些答案适用于规范化模式。。尽管处于无法利用指数的极端劣势

这是非常混乱的,但它是可以做到的。有关示例,请参见。注意这里的合成行关系,尽管一些[non-MySQL]数据库也支持表值函数和此类函数的交叉应用程序

这种方法不能扩展,因为它不能使用索引

客户端PHP中的过滤器 取每一行。酌情循环并使用explode等

由于缺少索引,并且要求所有数据都在本地获取,因此这种方法无法扩展


虽然在非规范化列中查找相等值可以通过各种方法完成,例如在集合中查找,但使用相同的技术不可能查找相对值,即较大/较小的值。在这两种情况下都有效的解决方案是修复基础架构。

单个单元格包含多个日期。。这是问题的症结所在。这里有三种选择

规范化/修复模式 从一个充分规范化的模式开始——特别是,任何列/单元格最多只能有一个日期或一条信息。根据信息的作用,这可能需要也可能不需要引入另一个表

这种方法是可伸缩的,并且在RDMBS/RA设计中起作用,如果这样做,其他查询也会起作用

这是迄今为止最好的选择,如果可能的话,应该这样做。适当的规范化还应该指导进一步的模式开发,以缓解未来的此类问题

创建规范化视图 创建非规范化表的规范化视图,或创建可以联接的规范化查询。然后使用各种建议答案中的一个,这些答案适用于规范化模式。。尽管处于无法利用指数的极端劣势

这是非常混乱的,但它是可以做到的。有关示例,请参见。注意这里的合成行关系,尽管一些[non-MySQL]数据库也支持表值函数和此类函数的交叉应用程序

这种方法不能扩展,因为它不能使用索引

客户端PHP中的过滤器 取每一行。酌情循环并使用explode等

由于缺少索引,并且要求所有数据都在本地获取,因此这种方法无法扩展


虽然在非规范化列中查找相等值可以通过各种方法完成,例如在集合中查找,但使用相同的技术不可能查找相对值,即较大/较小的值。在这两种情况下都有效的解决方案是修复基础架构。

当你说cell时,你指的是列?那么在一列中你有很多日期?它们是逗号分隔的吗?该字段是一个简单的文本字段。这是我第一个使用MySQL和PHP的项目,因此我承认这可能不是存储和使用我的数据的最佳方式。该表用于存储可能只在一个日期或偶尔多个日期发生的事件,过去的事件是不相关的,所以我只想拉一行,其中日期字段集在分钟时作为文本字段,包含一个“今天”日期的未来日期…数据当前不是逗号分隔的,但它只是测试数据,易于格式化…最好的办法是仅为与日期有关系的日期创建另一个表原始表,一对多,这样您将能够在原始表中有一行
最后一个表与新表中的许多日期列相关。当你说“单元格”时,你指的是一列吗?那么在一列中你有很多日期?它们是逗号分隔的吗?该字段是一个简单的文本字段。这是我第一个使用MySQL和PHP的项目,因此我承认这可能不是存储和使用我的数据的最佳方式。该表用于存储可能只在一个日期或偶尔多个日期发生的事件,过去的事件是不相关的,所以我只想拉一行,其中日期字段集在分钟时作为文本字段,包含一个“今天”日期的未来日期…数据当前不是逗号分隔的,但它只是测试数据,易于格式化…最好的办法是仅为与日期有关系的日期创建另一个表原始表,一对多,这样,您将能够在原始表中有一行与新表中的许多日期列相关。从您的示例中,我认为MyDate中有许多日期,根据@Michael Jones,这是行不通的。您是对的。。。我不确定如何在一个字段中有多个日期,至少在MySql中没有。另一方面,PostgreSQL允许数组日期时间等恐怖行为。日期当前存储在“文本”字段中。请参阅原始帖子感谢的评论从您的示例中,我认为MyDate中有许多日期,根据@Michael Jones的说法,这是行不通的。您是对的。。。我不确定如何在一个字段中有多个日期,至少在MySql中没有。另一方面,PostgreSQL允许数组日期时间等恐怖行为。日期当前存储在“文本”字段中,请参阅原始帖子上的注释谢谢