php - 如果匹配多个类型则选择查询记录

标签 php mysql

我有一些像下面这样的 mysql 表,

1) 视频

id      name
1       test1
2       test2

2)标签

id      name
1       theme1=test1
2       theme1=test2
3       theme2=test1
4       theme2=test2
5       age=senior
6       age=children

3)tags_to_items

vid    tagid
1      1
1      5

在表 tags_to_item 中,您会看到 videos.id=1 有 2 个标签 1)theme1=test12)age=senior。这意味着 video.id=1 有 2 个标签。 现在这里有一个冲突, 我现在正在做的是,我只搜索主题。这意味着如果我搜索 theme1=theme1 那么它还需要在 theme2 中搜索 theme1 ,反之亦然。像这样

WHERE tagid=1 OR tagid=2

这功能正常,但现在我想搜索视频是否有多个带有 AND 条件的标签

WHERE tagid=5 AND tagid IN (1,2)

它应该返回video.id=1

因此,可能需要搜索视频 1 包含标签 age=senior AND theme1=theme1 OR theme2=theme1 的位置。但它不起作用,有人知道我该怎么做吗?

最佳答案

我想我得到了答案。 我需要像这样加入,

INNER JOIN tags_to_items t2      ON (v.id = t2.tagid AND t2.tagid = 5) 

INNER JOIN tags_to_items t3      ON (v.id = t3.tagid AND t3.tagid in ('27' ,'69','84' ,'99' )) 

关于php - 如果匹配多个类型则选择查询记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422780/

相关文章:

mysql - 带层的数据库产品表

php - 功能需要稍作修改

php - 在php中使用try Catch获取警告消息

php - Volley 没有回应

Php Laravel 比较 2 个数组值

java - Hibernate:批量和非批量插入生成相同数量的 SQL 查询

c# - 使用 C# 和 MySQL 的 Crystal 报表。正在设计但运行时总是登录失败

php - 如何修复 SQL 查询中的错误

php - 以hms格式排序时间的Mysql查询

PHP - 即时编译器与解释器