php - 添加 DATE_SUB 查询以返回 mysql 中的值范围

标签 php mysql

这是我的原始查询:

$query = mysql_query("SELECT s.*, UNIX_TIMESTAMP(`date`) AS `date`, f.userid as favoritehash FROM songs s LEFT JOIN favorites f ON f.favorite = s.id AND f.userid = '$userhash' ORDER BY s.date DESC");

这会返回我的数据库中的所有歌曲,然后加入我的收藏夹 表中的数据,这样我就可以显示回访者点击了哪些项目作为收藏夹。访问者通过存储在 cookie 和 favorites 表中的唯一标识来识别。

我需要更改此查询,以便只获取最近几个月的歌曲。以下是我尝试将 DATE_SUB 添加到我的查询中:

$query = mysql_query("SELECT s.*, UNIX_TIMESTAMP(`date`) AS `date`, f.userid as favoritehash FROM songs s WHERE `date` >= DATE_SUB( NOW( ) , INTERVAL 1 MONTH ) LEFT JOIN favorites f ON f.favorite = s.id AND f.userid = '$userhash' ORDER BY s.date DESC");

建议?

最佳答案

您只需移动 WHERE 子句:

SELECT
    s.*,
    UNIX_TIMESTAMP(`date`) AS `date`,
    f.userid as favoritehash
FROM
    songs s
    LEFT JOIN favorites f ON f.favorite = s.id AND f.userid = '$userhash'
WHERE `date` >= DATE_SUB( NOW( ) , INTERVAL 1 MONTH )
ORDER BY s.date DESC

LEFT JOINFROM 中表列表的一部分,您不能在 where 中设置条件。

关于php - 添加 DATE_SUB 查询以返回 mysql 中的值范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3051237/

相关文章:

javascript - 如何根据按下的按钮调用函数以显示 div?

mysql - 依赖关系未满足 : Error creating bean with name 'entityManagerFactory'

mysql - 表行的惰性删除

Mysql存储过程改变多个表结构

mysql - 我可以选择在 MySQL 中加入哪些行吗

php - MySql 查询在 php 中不起作用

php - 哪个 Eclipse 发行版适合使用 Python、PHP 或 Perl 进行 Web 开发?

mysql - SQL - 使用 UNION 的优先级

php - Jquery 使用 $.post 函数进行实时输入验证

php - 如何将动态静态 Bing map 嵌入网页