【问题标题】:Select 3 columns with specific keys from Wordpress postmeta table从 Wordpress postmeta 表中选择具有特定键的 3 列
【发布时间】:2014-05-11 01:53:41
【问题描述】:

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

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

|编号 |纬度 |天然气|

来自格式的数据:

|编号 | post_id |元密钥 |元值

我正在尝试使用查询:

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

但它只返回正确的纬度值和每行重复的经度值。

【问题讨论】:

    标签: mysql sql wordpress


    【解决方案1】:

    首先,您不想在 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';
    

    【讨论】:

    • 哇,这真是太棒了。谢谢你的回答,我学到了一些新的有用的东西!
    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 2012-11-08
    • 2017-01-10
    • 2019-12-08
    • 2022-01-17
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多