【发布时间】:2013-04-19 02:58:03
【问题描述】:
我有一个名为“values”的 mySQL 表:
values:
file | metadata | value
________________________
01 | duration | 50s
01 | size | 150mo
01 | extension| avi
02 | duration | 20s
02 | extension| mkv
03 | duration | 20s
03 | extension| mpeg
用户将在 SQL 中创建自己的查询,如下所示:
SELECT file FROM values WHERE (metadata='duration' AND value='20s') AND (metadata='extension' AND value='mkv')
我知道这个查询不好,但我无法更改“值”表。我不知道如何在这些条件下获取 file_id..
有什么想法吗?
提前致谢!
【问题讨论】:
-
你只想要文件ID而不重复
-
尝试使用 OR 条件
-
我认为 OP 想要查询“duration”和“extension”,就好像它们是列一样......对吧,Kib?
-
我认为您想要满足 (metadata='duration' AND value='20s') 或 (metadata='extension' AND value='mkv') 的两个结果。不是吗?如果是,您将放置 AND 而不是 OR。
-
是的,没有重复更好! @Fildor 你明白了!如果我使用 OR 条件,它将返回我 file_id 2 和 3(因为它们的持续时间 = 20 秒)
标签: mysql sql conditional-statements