mysql - 使用 MySQL 选择除当前视频之外的类似视频

标签 mysql mariadb except

我有一个包含视频信息的表格,当有人在我的网站上选择一个视频时,我有一个小部分显示具有类似标签的所有其他视频。现在,我想排除当前选择的视频。这是我的查询:

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。

最佳答案

这必须与不带子选择的查询相同:

SELECT video_title, video_desc
FROM videos 
WHERE (
    tags LIKE $CurrentTags
OR
    tags LIKE $otherTags
OR
    tags LIKE $otherTags
)
AND   
    video_id <> '$CurrentVideo';

关于mysql - 使用 MySQL 选择除当前视频之外的类似视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41396481/

相关文章:

mysql - 创建一个偶数以使用随机数更新表列

mysql - 将数据从文本文件加载到数据库

mysql - 使用docker compose并使用mariadb 10.4.8 docker容器对用户 'root' @'localhost'的访问被拒绝,并在附加外部卷时发出

Python:创建除通用功能外的尝试

sql-server - 如何在 SQL 中查找不配对的行?

LINQ "Except"运算符

php - 文档中 PHP + Ajax 之间加载数据时的最佳实践

MySQL排名查询。获取特定成员的位置

c# - 使用asp.net根据下拉值选择显示Gridview表

php - Laravel Eloquent 多重连接