【发布时间】:2020-07-14 21:34:09
【问题描述】:
我有一个有 4 列的表格:
| id | article_id | meta_key | meta_value |
|----|------------|----------|------------|
| 1 | 135 | author | Beth |
| 2 | 135 | status | draft |
| 3 | 135 | paywall | yes |
| 4 | 136 | author | Kim |
| 5 | 136 | status | publish |
| 6 | 137 | author | Mary |
| 7 | 137 | status | publish |
我必须实现一个功能,将带有 yes 或 no meta_value 的 meta_key“付费墙”添加到新文章中,这意味着 meta_key旧记录不存在“付费墙”。
我需要通过 meta_key="paywall" 获取记录并按 meta_value 排序。 问题在于没有meta_key“paywall”的文章,当排序为DESC时,文章按[是],[否],[没有付费墙元键的文章]排序。
SQL 中有没有一种方法,我可以通过假设 meta_value 的值为 yes 对于不存在的键进行排序,以便 DESC 返回为 [ Yes ],[ 没有文章付费墙元键],[否]?
我的查询:
SELECT article_id, meta_key, meta_value
FROM wp_meta
WHERE meta_key="paywall"
ORDER BY meta_value
DESC
【问题讨论】:
-
您能分享您的查询吗?
-
@Mureinik 添加了查询
-
如果你“需要通过 meta_key = 'paywall' 获取文章” 即 WHERE meta_key = 'paywall',你为什么要关心没有这个 meta_key 的旧文章?它们不属于您的结果集!
-
我们需要假设旧文章有付费墙,值为“是”