我有一个包含多行相关数据的表,如果meta_key值在('A', 'B', 'C')
中,我需要将其作为一行查询。
meta_id | post_id | meta_key | meta_value
--------+---------+----------+-----------
1 | 1234 | A | Foo
2 | 1234 | B | Bar
3 | 1234 | C | Baz
4 | 1234 | D | junk
我期待最终得到的是一个给我结果的查询
输出
A | B | C
----+-----+----
Foo | Bar | Baz
答案 0 :(得分:1)
您可以使用条件聚合来获得此类结果。假设给定的post_id每个meta_key有一个meta_value。
select
max(case when meta_key='A' then meta_value end) as A,
max(case when meta_key='B' then meta_value end) as B,
max(case when meta_key='C' then meta_value end) as C
from yourtable
group by post_id
答案 1 :(得分:-2)
您只需运行此SQL条件查询命令:
SELECT * FROM table_name
WHERE meta_key ='A'AND_key ='B'AND meta_key ='C'
要限制查询结果,请执行以下操作:
SELECT * FROM table_name
WHERE meta_key ='A'AND_key ='B'AND meta_key ='C'LIMIT 10
注意:LIMIT关键字接受任何有效的整数范围。