在phpMyAdmin中,我正在使用WordPress中的自定义 meta字段。
假设我有3个字段的自定义 meta-地址,纬度,经度,并希望运行一个SQL查询,以显示只有这3列与他们的值作为行下面。
我只能弄清楚如何让其中一列显示出来,它的数据通过运行以下命令:
SELECT DISTINCT wp_postmeta.meta_value AS address
FROM wp_postmeta, wp_posts
WHERE post_type = ‘dealers’
AND wp_postmeta.meta_key = ‘_dealer_address’
有人能告诉我如何运行查询以包括所有3列吗?
我想做的是模仿table的设置:http://code.google.com/apis/maps/articles/phpsqlsearch_v3.html#outputxml
因为我有一个自定义的职位类型(经销商)使用您的自定义metabox的纬度和经度。
您的SQL查询在phpMyAdmin中测试得很好,看起来与我的其他手动创建的测试经销商表相同,但当我试图在PHP中替换Google Maps示例查询时-它是一个失败。
你觉得这个问题太复杂了吗?
这是一个不使用WordPress自定义post的测试查询:
$query = sprintf("SELECT address, name, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
2条答案
按热度按时间bf1o4zei1#
绝对远离distinct。99%的情况下,这是一个信号,表明有些地方出了问题(模式或您对模式的理解)。
我认为Cheluis的建议可能不会把纬度/经度与地址联系起来。
我没有wordpress的安装,我真的希望有一个主键(比如post_id),在你最初的例子中,你没有用它来连接两个表,这可能是你使用distinct的原因。
如果这个id存在,你可以多次连接回wp_postmeta表,例如:
这里假设每个庄家都有这三个属性,如果没有的话,你就需要切换到一个外部连接,这会让查询变得更难看。
希望能有所帮助。
k3fezbri2#
我不熟悉WordPress,我想你可以使用UNION ALL条款。我不知道这是否是最好的解决方案,但我认为它不能工作。类似于:
或者类似的东西。每个工会都有正确的价值观。