mysql - 过滤没有特定值的行

标签 mysql sql

我正在 php 语言之外查询 wordpress mysql 数据库,我不知道如何解决以下问题:每个帖子都有具有一定值(value)的分类法。我想过滤一个名为“calificaciones”的值。这是我当前的查询:

SELECT wp_posts.post_title, IF (wp_term_taxonomy.taxonomy = 'calificaciones', wp_terms.slug, 'no') as calificacion
    FROM wp_posts
    JOIN wp_term_relationships ON (wp_term_relationships.object_id = wp_posts.ID)
    JOIN wp_term_taxonomy ON (wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id)
    JOIN wp_terms ON (wp_terms.term_id = wp_term_taxonomy.term_id)

    AND wp_posts.post_type = 'ultimas-noticias'
    #AND wp_term_taxonomy.taxonomy = 'calificaciones'

这个查询的问题是我会多次获得 post_title (因为每个帖子还有其他分类法)。我想获取帖子标题和是/否标志(无论该帖子是否具有该分类值)。

最佳答案

您可以对 calificacion 列使用子查询,而不是在同一查询上加入分类法。

SELECT wp_posts.post_title, CASE WHEN EXISTS((SELECT *
    FROM wp_term_relationships
    JOIN wp_term_taxonomy ON (wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id)
    JOIN wp_terms ON (wp_terms.term_id = wp_term_taxonomy.term_id)
    WHERE (wp_term_relationships.object_id = wp_posts.ID)
    AND wp_term_taxonomy.taxonomy = 'calificaciones'
    )) THEN 'YES' ELSE 'NO' END as calificacion
FROM wp_posts
WHERE wp_posts.post_type = 'ultimas-noticias'

关于mysql - 过滤没有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843948/

相关文章:

php - 用 PHP 从最近到最少的顺序组织类别文章

php - SQLSTATE[HY000] [1045] 拒绝用户 'root' @'localhost' 访问 ../laravel/framework/src/Illuminate/Database/Connectors/Connector.php :70

php - Mysql Real Escape String PHP函数添加 "\"到我的字段条目

mysql - 从某个时间戳获取总计

sql - 为什么未使用的 FROM 表会使语句变慢

sql - Oracle SQL 12.1 从字符串中删除不断变化的子字符串

mysql - 从引用子项更新父表

java - sqlite 和 mysql。当应用程序的所有进程都在同一台机器上运行并且数据库几乎没有 2 个表时,哪个更好

javascript - 使用 Ajax、PHP、MYSQL 更新表单

php - MySQL 无法对行列表进行排序