我有一个包含视频信息的表格,当有人在我的网站上选择一个视频时,我有一个小部分,显示所有其他类似标签的视频。现在,我想要排除当前所选的视频。这是我的疑问:
SELECT video_title, video_desc
FROM videos WHERE tags LIKE
$CurrentTags AND
'$CurrentVideo' NOT IN
(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo')
查询工作正常(因为没有错误),但它有时仍会返回已经选择的视频。我认为这很明显,但无论如何我都会澄清
$ CurrentTags是网站上当前所选视频的一组标签。
$ CurrentVideo是网站上当前所选视频的唯一视频ID。
答案 0 :(得分:1)
这必须与没有子选择的查询相同:
SELECT video_title, video_desc
FROM videos
WHERE (
tags LIKE $CurrentTags
OR
tags LIKE $otherTags
OR
tags LIKE $otherTags
)
AND
video_id <> '$CurrentVideo';
答案 1 :(得分:0)
(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo')
。该子查询返回与其输入相同的输出。您已有视频ID;你不需要再次选择它。你有没有尝试过那里的不平等算子?此外,你将它与自身进行比较,不是吗?试试这个:
video_id <>'$CurrentVideo'