Mysql查询以选择带日期或不带日期的行

Mysql查询以选择带日期或不带日期的行,mysql,date,select,Mysql,Date,Select,我想选择基于“开始日期”和“到期日期”列的“今天日期”行,甚至选择没有日期值的行。所以 $query=mysql_query("SELECT * FROM discounts where '".date('Y-m-d')."' >= coupon_start_date AND '".date('Y-m-d')."' <= coupon_expiry_date UNION SELECT * FROM ecwid_discounts where '".date('Y-m-d')."' &

我想选择基于“开始日期”和“到期日期”列的“今天日期”行,甚至选择没有日期值的行。所以

$query=mysql_query("SELECT * FROM discounts where '".date('Y-m-d')."' >= coupon_start_date AND '".date('Y-m-d')."' <= coupon_expiry_date
UNION SELECT * FROM ecwid_discounts where '".date('Y-m-d')."' >= coupon_start_date AND coupon_expiry_date is NULL union SELECT * FROM ecwid_discounts where coupon_start_date is NULL AND '".date('Y-m-d')."' <= coupon_expiry_date union SELECT * FROM ecwid_discounts where coupon_start_date is NULL AND coupon_expiry_date is null");
我想确认这个查询是否正确,或者简而言之,是否有更好的方法重写这个查询

任何帮助人员都可以使用此查询:

$query=mysql_query("SELECT * FROM discounts where '".date('Y-m-d')."' >= coupon_start_date AND '".date('Y-m-d')."' <= coupon_expiry_date
UNION SELECT * FROM ecwid_discounts where '".date('Y-m-d')."' >= coupon_start_date AND '".date('Y-m-d')."' <= coupon_expiry_date OR '".date('Y-m-d')."' >= coupon_start_date AND coupon_expiry_date is NULL OR coupon_start_date is NULL AND '".date('Y-m-d')."' <= coupon_expiry_date OR coupon_start_date is NULL AND coupon_expiry_date is null");
警告:如果你只是在学习PHP,请不要学习过时的界面。这很糟糕,已经在PHP7中删除了。替换类和指南类有助于解释最佳实践。请确保您的用户参数正确无误,否则将导致严重后果。您可以使用或,因此不需要联合。