CONCAT(meta_key,meta_value)从wp_postmeta表中分成不同的列

时间:2017-02-04 14:22:37

标签: mysql wordpress if-statement concat

在我对我面临的问题进行了一些研究之后 我认为使用IF()CONCAT()函数存在此声明 合并到一个不同的列。我想做的是合并 两个值合二为一,使第一个值看起来像一列。 这是我到目前为止的sql代码:

SELECT 
    IF(meta_key = 'property_id',
        CONCAT(meta_key, ' ', meta_value),
        '') AS property_id
FROM
    wp_postmeta,
    wp_posts,
    wp_terms,
    wp_term_taxonomy,
    wp_term_relationships
WHERE
    wp_term_relationships.object_id = wp_posts.ID
        AND wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
        AND wp_term_taxonomy.term_id = wp_terms.term_id
        AND wp_postmeta.post_id = wp_posts.ID

事实证明它是空的,但行数是正确的。

1 个答案:

答案 0 :(得分:0)

从不<h:graphicImage value="file:../../../images/image.jpg"> </h:graphicImage> 子句中使用逗号。 始终使用正确的FROM语法。

只需将条件移至JOIN子句:

WHERE

或者,移除SELECT CONCAT(meta_key, ' ', meta_value) AS property_id FROM wp_postmeta pm JOIN wp_posts p ON pm.post_id = p.ID JOIN wp_term_relationships r ON r.object_id = p.ID JOIN wp_term_taxonomy tt ON r.term_taxonomy_id = tt.term_taxonomy_id JOIN wp_terms t ON tt.term_id = t.term_id WHERE meta_key = 'property_id' 并使用WHERE

CASE

我还注意到,大多数表格对于您正在进行的操作不是必需的。

谢谢(Luarb,抱歉编辑错误)