使用 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'