gpt4 book ai didi

php - MySQL 查询显示结果,但我无法通过它们进行限制?

转载 作者:行者123 更新时间:2023-11-29 04:54:14 25 4
gpt4 key购买 nike

您好,我有这样的疑问

SELECT 
videos.*,
categories.cat_name ,
( SELECT COUNT( * ) AS count FROM user_favorites WHERE user_id = 'tw415656866' AND video_id = videos.video_id )is_favorite
FROM `videos`
INNER JOIN categories
ON categories.cat_id = videos.cat_id
WHERE
date <= '2011-11-21 09:12:18'
GROUP BY videos.video_id
ORDER BY (votesdown / votesup) ASC
LIMIT 0, 5

此代码工作正常并返回如下表

video_id - 视频 ID
cat_name - 类别名称
cat_id - 类别 ID
标题 - 视频标题
yt_id - youtube 视频 ID
votesup -投票赞成
votesdown - 投反对票
日期 - 添加日期
发推文 - 0/1(1=发推文)
is_favorite - 0/1(1=收藏)

我想做的是将它添加到 WHERE 子句中

AND is_favorite = 1

如您所见,“is_favorite”作为列添加到数据集中,但我无法查询它,因为 MySQL 表示列“is_favorite”不存在。

确切的错误是...“‘where 子句’中的未知列‘is_favorite’”

有什么想法吗?

非常感谢

最佳答案

is_favorite 确实不是列,而是子查询的别名。尝试使用

HAVING is_favorite = 1

相反。参见示例 http://www.w3schools.com/sql/sql_having.asp WHEREHAVING

之间的区别的解释

所以你的查询应该是这样的:

SELECT 
videos.*,
categories.cat_name ,
( SELECT COUNT( * ) AS count FROM user_favorites WHERE user_id = 'tw415656866' AND video_id = videos.video_id ) AS is_favorite
FROM `videos`
INNER JOIN categories ON categories.cat_id = videos.cat_id
WHERE date <= '2011-11-21 09:12:18'
GROUP BY videos.video_id
HAVING is_favorite = 1
ORDER BY (votesdown / votesup) ASC
LIMIT 0, 5

关于php - MySQL 查询显示结果,但我无法通过它们进行限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com