如果查询中不包含NULL,则为MYSQL

如果查询中不包含NULL,则为MYSQL,mysql,sql,Mysql,Sql,我无法在自己的广告发布系统中解决这个问题 mysql表中有“发布日期和到期日期”列。这些列不是填充默认值所必需的,它们是整数类型。 在mysql查询中,ads将正常列出,如果这两列不为null,则它们将包含在查询中 Example: publishing_date < current_date < expiration_date Table: id|publishing_date|expiration_date 1|1450821600|1451512800 --->

我无法在自己的广告发布系统中解决这个问题

mysql表中有“发布日期和到期日期”列。这些列不是填充默认值所必需的,它们是整数类型。 在mysql查询中,ads将正常列出,如果这两列不为null,则它们将包含在查询中

Example:

publishing_date < current_date < expiration_date

Table:

id|publishing_date|expiration_date
1|1450821600|1451512800  ---> 2015/12/23 - 2015/12/31
2|1464555600|1465506000  ---> 2016/05/30 - 2016/06/10
3|NULL|NULL
4|NULL|NULL

它应该显示2、3、4个ID

如果我正确理解了您的问题,那么这个查询应该可以工作

SELECT id FROM ads WHERE FROM_UNIXTIME(publishing_date, '%Y-%m-%d') < DATE(NOW()) AND FROM_UNIXTIME(expiration_date, '%Y-%m-%d') < DATE(NOW()) OR (publishing_date IS NULL AND expiration_date IS NULL)

添加示例表数据,以及预期的结果,其中数据类型为发布日期和过期日期列?数据类型为整数这些空值使您的生活更加困难。只需使用固定日期,例如:“1970-01-01”检查表名。谢谢您的帮助。我解决了我的问题,从发布日期为NULL且过期日期为NULL的ads中选择不同的id,或者从发布日期UNIX\u TIMESTAMP AND expiration\u date>UNIX\u TIMESTAMP且发布日期不为NULL且过期日期不为NULL的ads中选择不同的id,您能否将其简化为:从发布日期为NULL且为NULL的ads中选择不同的idexpiration\u date为NULL或publishing\u dateUNIX\u TIMESTAMP