mysql order by值相同_在MySQL中ORDER BY一个相等的值

所有,

我现在有以下SQL查询:

SELECT * FROM $wpdb->posts

JOIN $wpdb->term_relationships ON $wpdb->term_relationships.object_id=$wpdb->posts.ID

JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id=$wpdb->posts.ID

WHERE

$wpdb->posts.post_status = 'publish'

AND $wpdb->posts.post_type = 'post'

AND $wpdb->term_relationships.term_taxonomy_id='$vendor_category_to_use'

AND $wpdb->postmeta.meta_key='zip'

我有一个名为featuremeta.meta_key的特色.然后,如果帖子的特色是在另一个名为postmeta.meta_value的列中.如果meta_value =“yes”,其中meta_key等于“featured”,那么我想首先显示这个,然后显示其余的帖子.我怎么能这样做呢?

编辑:这是数据设置:

postid meta_key meta_value

123 featured yes

324 featured no

182 featured yes

873 featured yes

所以在这个例子中,我希望我的帖子按此顺序显示:

postid meta_key meta_value

123 featured yes

182 featured yes

873 featured yes

324 featured no

我希望有所帮助!

这是生成的SQL:

SELECT *

FROM wp_posts

JOIN wp_term_relationships ON wp_term_relationships.object_id=wp_posts.ID

JOIN wp_postmeta ON wp_postmeta.post_id=wp_posts.ID

WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'post' AND wp_term_relationships.term_taxonomy_id='5' AND wp_postmeta.meta_key='zip' AND (wp_postmeta.meta_value = '46320' OR wp_postmeta.meta_value = '46321' OR wp_postmeta.meta_value = '46322' OR wp_postmeta.meta_value = '46323' OR wp_postmeta.meta_value = '46324' OR wp_postmeta.meta_value = '46327' OR wp_postmeta.meta_value = '46394' OR wp_postmeta.meta_value = '46402' OR wp_postmeta.meta_value = '46404' )

ORDER BY (wp_postmeta.meta_key='featured' AND wp_postmeta.meta_value='yes') DESC, wp_posts.post_date DESC

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值