在mysql语句中使用if语句
问题描述:
我使用通用的wordpress sql语句来获取帖子标题。我想用一个seo插件中的allme的postmeta值来替换帖子标题,这是一个全部在seo标题中存在的帖子。在mysql语句中使用if语句
如何在sql命令中使用if语句?
现有代码没有全部在一个if语句。
//Limit to last 30 days, 1,000 items
$rows = $wpdb->get_results("SELECT $wpdb->posts.ID, $wpdb->posts.post_date_gmt, $wpdb->posts.post_title
FROM $wpdb->posts, $wpdb->postmeta
WHERE $wpdb->posts.post_status='publish'
AND (DATEDIFF(CURDATE(), post_date_gmt)<=30)
$includeMe
ORDER BY $wpdb->posts.post_date_gmt DESC
LIMIT 0, 1000");
这是菲尔的回答:
$rows = $wpdb->get_results("SELECT COALESCE($wpdb->postmeta.meta_value, $wpdb->posts.post_title) AS post_title, $wpdb->posts.post_date_gmt, $wpdb->posts.ID
FROM $wpdb->posts
LEFT JOIN $wpdb->post_meta
ON $wpdb->posts.ID = $wpdb->postmeta.post_id
AND $wpdb->postmeta.meta_key = '_aioseop_title'
WHERE $wpdb->posts.post_status='publish'
AND (DATEDIFF(CURDATE(), post_date_gmt)<=30)
$includeMe
ORDER BY $wpdb->posts.post_date_gmt DESC
LIMIT 0, 1000");
答
后得到一个错误,现在的新功能我在post_meta
表使用COALESCE()
用LEFT JOIN
。例如(注意,一般只能查询,不能直接获得WordPress)
SELECT COALESCE(post_meta.value, posts.title) AS title
FROM posts
LEFT JOIN post_meta
ON posts.id = post_meta.post_id
AND post_meta.key = 'some_meta_key'
酷感谢 - 现在要尝试 - 之前从未见过聚结()函数。 – 2011-04-14 02:11:24
菲尔,我只是改变了我的功能,我收到一个错误 - 我将把它重新发回问题 - 你介意看看吗? – 2011-04-14 02:58:06
什么是错误? – squawknull 2011-04-14 03:04:00