*解决方案选择来自同一列的多个值和命名他们
Multiple selects on the same table
我无法弄清楚如何正确地做到这一点。我想查询一个表中的一列中的几个键,并返回它们的命名
id | meta_key | meta_value |
1 | KEY1 | KEY1_VALUE |
2 | KEY2 | KEY2_VALUE |
3 | KEY3 | KEY3_VALUE |
etc.
$tq="SELECT metas.meta_value
FROM meta_table AS metas
LEFT JOIN post_table AS posts
ON metas.post_id = posts.ID
WHERE metas.meta_key IN ('KEY1', 'KEY2', 'KEY3')
AND posts.post_status = 'status'
AND posts.post_type = 'type'";
$tr=$dbc->query($tq);
var_dump($tr);
查询本身工作正常。但是我需要在返回的数组中命名'KEY1','KEY2','KEY3'等。现在所有的东西都以“[meta_value] => string”的形式返回,我需要它是“[key1] => string”,“[key2] => string”,“[key3] => string”等
*编辑 有接缝是我所问的一些重大missunderstanding。所以我会尽力澄清。我需要返回数组说KEY1与对应于meta_value等KEY1值KEY1的关键,即
array({[
[KEY1] => [KEY1_VALUE],
[KEY2] => [KEY2_VALUE]
]});
现在它看起来像这样
array({[
[meta_value] => [VALUE1],
[meta_value] => [VALUE2]
]});
所以问题是,我无法在foreach中定位特定值,因为所有内容都有[meta_value]的关键字。
你能告诉我们表结构和一些数据吗?你的SELECT语句只要求'meta_value',这就是你将要得到的。 – mickmackusa
@mickmackusa我想要的值的唯一列是在meta_value列中。 “IN”中的键位于meta_key列中。除此之外,只有一个id列。现在更新问题。 – axelra82
是每个元密钥唯一吗?或coudl相同的元键被列出多次为不同的用户或东西? – xQbert