如何更轻松地搜索表结构所在的表数据

id | post_id | meta_key | meta_value

例如,如果我知道一些我感兴趣的meta_值,并且我知道它们对应的meta_键,我如何为它编写查询?
假设对于同一个成员like有5个行条目like
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来实现这一点,但我认为这种表设计模式很常见,因此必须有一种简单的方法从中获取数据。

最佳答案

如果每个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);

07-24 19:15
查看更多