Php 高级MySQL:仅显示30天内未更新的项目

Php 高级MySQL:仅显示30天内未更新的项目,php,mysql,wordpress,Php,Mysql,Wordpress,我试图只显示过去30天内未更新的列表 除了明显缺少30天更新要求外,此查询工作正常: $Listings = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."fsrep_listings, ".$wpdb->prefix."fsrep_listings_to_users WHERE ".$wpdb->prefix."fsrep_listings_to_users.ID = ".$Userprofile->ID."

我试图只显示过去30天内未更新的列表

除了明显缺少30天更新要求外,此查询工作正常:

$Listings = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."fsrep_listings, ".$wpdb->prefix."fsrep_listings_to_users WHERE ".$wpdb->prefix."fsrep_listings_to_users.ID = ".$Userprofile->ID." AND ".$wpdb->prefix."fsrep_listings.listing_visibility = 1 AND ".$wpdb->prefix."fsrep_listings.listing_id = ".$wpdb->prefix."fsrep_listings_to_users.listing_id");
我已经试过了,但是没有用:

$Listings = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."fsrep_listings, ".$wpdb->prefix."fsrep_listings_to_users WHERE ".$wpdb->prefix."fsrep_listings_to_users.ID = ".$Userprofile->ID." AND ".$wpdb->prefix."fsrep_listings.listing_visibility = 1 AND ".$wpdb->prefix."fsrep_listings.listing_id = ".$wpdb->prefix."fsrep_listings_to_users.listing_id AND ".$wpdb->prefix."fsrep_listings.listing_last_updated < unix_timestamp(now() - interval 30 day");
如果您需要以下信息,我将使用以下时间戳格式将日期存储在数据库中:2011-02-12 22:23:01。我一定错过了一些相对简单的东西。谢谢你的帮助

我想我明白了:

$Listings = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."fsrep_listings, ".$wpdb->prefix."fsrep_listings_to_users WHERE ".$wpdb->prefix."fsrep_listings_to_users.ID = ".$Userprofile->ID." AND ".$wpdb->prefix."fsrep_listings.listing_visibility = 1 AND ".$wpdb->prefix."fsrep_listings.listing_id = ".$wpdb->prefix."fsrep_listings_to_users.listing_id AND date_format(".$wpdb->prefix."fsrep_listings.listing_last_updated,'%Y%m%d')<date_format(adddate(now(),interval -30 day),'%Y%m%d')");

您真的应该重新思考构造查询的方式。这样读是不可能的。这最终是一个典型的bug源!第二个查询甚至无法工作,它的末尾缺少一个右大括号。请提供表的定义,日期是实际时间戳还是VARCHAR?