使用 MySQL 选择当前视频以外的类似视频
Selecting similar videos except for current one using MySQL
我有一个包含视频信息的 table,当有人在我的网站上选择一个视频时,我有一个小部分显示所有其他带有类似标签的视频。现在,我想排除当前选中的视频。这是我的查询:
SELECT video_title, video_desc
FROM videos WHERE tags LIKE
$CurrentTags AND
'$CurrentVideo' NOT IN
(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo')
查询工作正常(因为没有错误)但有时它仍然 returns 我已经选择了一个视频。我认为这很明显,但我还是会澄清一下
$CurrentTags 是网站上当前选中视频的一组标签。
$CurrentVideo 是网站上当前所选视频的唯一视频 ID。
这必须与没有子选择的问题相同:
SELECT video_title, video_desc
FROM videos
WHERE (
tags LIKE $CurrentTags
OR
tags LIKE $otherTags
OR
tags LIKE $otherTags
)
AND
video_id <> '$CurrentVideo';
(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo')
。该子查询 returns 输出与其输入相同。您已有视频ID;你不需要再 select 了。你在那里试过一个不等式运算符吗?而且,你是在和它自己比较,不是吗?试试这个:
video_id <>'$CurrentVideo'
我有一个包含视频信息的 table,当有人在我的网站上选择一个视频时,我有一个小部分显示所有其他带有类似标签的视频。现在,我想排除当前选中的视频。这是我的查询:
SELECT video_title, video_desc
FROM videos WHERE tags LIKE
$CurrentTags AND
'$CurrentVideo' NOT IN
(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo')
查询工作正常(因为没有错误)但有时它仍然 returns 我已经选择了一个视频。我认为这很明显,但我还是会澄清一下
$CurrentTags 是网站上当前选中视频的一组标签。
$CurrentVideo 是网站上当前所选视频的唯一视频 ID。
这必须与没有子选择的问题相同:
SELECT video_title, video_desc
FROM videos
WHERE (
tags LIKE $CurrentTags
OR
tags LIKE $otherTags
OR
tags LIKE $otherTags
)
AND
video_id <> '$CurrentVideo';
(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo')
。该子查询 returns 输出与其输入相同。您已有视频ID;你不需要再 select 了。你在那里试过一个不等式运算符吗?而且,你是在和它自己比较,不是吗?试试这个:
video_id <>'$CurrentVideo'