嗨,我知道这个问题似乎很熟悉,但请阅读完整的问题。 我想使用mysql查询获得Wordpress帖子标题,精选图片,内容。 我尝试了很多查询但是我遇到了错误。
没有错误,MySQL查询返回空。我使用的是Wordpress 4.5.2。
我找到了这个查询,但它给了我一个空的结果。
SELECT p1.*, wm2.meta_value
FROM wp_posts p1
LEFT JOIN wp_postmeta wm1 ON (
wm1.post_id = p1.id
AND wm1.meta_value IS NOT NULL
AND wm1.meta_key = '_thumbnail_id'
)
LEFT JOIN
wp_postmeta wm2
ON (
wm1.meta_value = wm2.post_id
AND wm2.meta_key = '_wp_attached_file'
AND wm2.meta_value IS NOT NULL
)LEFT JOIN
wp_term_relationships wtr
ON
(
object_id=p1.id
)
WHERE
p1.post_status='publish'
AND p1.post_type='post'
AND 'term_taxonomy_id'='454'
ORDER BY p1.post_date DESC
LIMIT 0,10
如何改进此查询以返回结果?
答案 0 :(得分:0)
SQL的WHERE子句中有错误:
AND 'term_taxonomy_id'='454'
字符串'term_taxonomy_id'
永远不会等于字符串'454'
。
首先,要检查,请从查询中完全删除此条件。如果您返回结果并且仍希望按此taxonomy_id
进行过滤,则删除字段名称周围的单引号:
SELECT p1.*,
wm2.meta_value
FROM wp_posts p1
LEFT JOIN wp_postmeta wm1 ON (
wm1.post_id = p1.id
AND wm1.meta_value IS NOT NULL
AND wm1.meta_key = '_thumbnail_id'
)
LEFT JOIN wp_postmeta wm2 ON (
wm1.meta_value = wm2.post_id
AND wm2.meta_key = '_wp_attached_file'
AND wm2.meta_value IS NOT NULL
)
LEFT JOIN wp_term_relationships wtr ON (object_id = p1.id)
WHERE p1.post_status = 'publish'
AND p1.post_type = 'post'
AND term_taxonomy_id = '454'
ORDER BY p1.post_date DESC LIMIT 0,10
在MySQL中,您可以使用字段名称周围的反引号,但单引号用于字符串文字。如果你把它们混在一起,你就会遇到麻烦。
如果您仍未获得结果,请考虑删除p1.post_status
和p1.post_type
限制,以确定您是否获得了结果并进行相应调整。