MySQL通过类似元数据的表查询

时间:2017-07-12 03:34:37

标签: php mysql

如何更轻松地搜索表结构为

的表数据
id | post_id | meta_key | meta_value

例如,如果我知道我感兴趣的一些meta_values并且我知道它们对应的meta_key,我该如何为它编写查询?

假设有5个行条目,例如像

那样的同一个成员
id | post_id | meta_key | meta_value
1  |   22    | fname     | Bobby
2  |   22    | lname     | Bobertson
3  |   22    | age       | 50
4  |   22    | member_id | 99

我希望得到fname, lname member_id = 99?

我确切地知道如何编写许多forloops来执行此操作,但我认为这个表设计模式很常见,因此必须有一种简单的方法来从中获取数据。

1 个答案:

答案 0 :(得分:1)

好吧,如果每个post_id只有一个member_id,您可以使用以下查询:

select meta_value 
  from tbl 
  where meta_key in ('fname', 'lname') 
    and post_id in (select post_id 
                      from tbl 
                     where meta_key='member_id' 
                       and meta_value=99);