我目前正在一个Wordpress网站上存储帖子类型的元值。元值作为键/值组合存储在名为wp_postmeta
的表中。这意味着单个帖子的多个元值存储在不同的行中。将表格行转换为列(并投射到不同类型)
我已经在某种程度上能够成功地转了行作为使用下面的查询列:
SELECT post_id,
MAX(CASE WHEN meta_key='store_lng' THEN meta_value END) AS lng,
MAX(CASE WHEN meta_key='store_lat' THEN meta_value END) AS lat
FROM wp_postmeta GROUP BY post_id
在这里你可以看到,我从wp_postmeta
表加载经纬度值和看到的输出post_id
,lng
和lat
。
但我对这部分感到满意,但它变得更复杂一点。我想对lng
和lat
值进行一些计算,看看它们是否在一定范围内。问题在于wp_postmeta
表中的元值以文本形式存储。理想情况下,我想我的查询看起来像这样:
SELECT post_id,
MAX(CASE WHEN meta_key='store_lng' THEN meta_value END) AS lng,
MAX(CASE WHEN meta_key='store_lat' THEN meta_value END) AS lat
FROM wp_postmeta GROUP BY post_id
WHERE
(lat BETWEEN %f AND %f)
AND
(lng BETWEEN %f AND %f)
哪里%f
当然是lng
和lat
范围,我的手之前计算。
所以,问题是,我怎样才能得到lng
和lat
值转换为浮点数,以便我可以在它们上执行BETWEEN运算符?