首页 文章

使用Wordpress postmeta表中的特定键选择3列

提问于
浏览
0

我想使用PHP和MySQL和Wordpress作为CMS制作商店定位器 . 我正在使用Pods插件来创建自定义帖子 . 在那里,我可以添加新的位置 . 对于每个点,我插入纬度和经度 . 现在,当wordpress表工作时,这些值将作为新行添加到表中,其中meta_key是lat或lng,meta_value是该属性的值 .

有没有办法,可能使用嵌套查询,以格式获取数据:

| id | lat | lng |

来自格式的数据:

| id | post_id | meta_key | meta_value

我试图使用查询:

SELECT la.id AS id, la.lat AS lat, ln.lng AS lng
FROM (

    SELECT post_id AS id, meta_value AS lat
    FROM  `wp_postmeta` 
    WHERE  `meta_key` LIKE  'lat'
) AS la, (

    SELECT post_id AS id, meta_value AS lng
    FROM  `wp_postmeta` 
    WHERE  `meta_key` LIKE  'lng'
) AS ln
GROUP BY id

但它只返回纬度的正确值,并且每行重复经度只返回一个值 .

1 回答

  • 0

    首先,您可以避免在MySQL中使用子查询 .

    同样,您不需要聚合 . 相反,您需要一个 join 条件:

    select lat.post_id, lat.meta_value as lat, lng.meta_value as lng
    from wp_postmeta lat join
         wp_postmeta lng
         on lat.post_id = lng.post_id and
            lat.meta_key = 'lat' and
            lng.meta_key = 'lng';
    

相关问题