gpt4 book ai didi

mysql - CONCAT(meta_key,meta_value) 到 wp_postmeta 表中的不同列

转载 作者:行者123 更新时间:2023-11-29 19:27:23 26 4
gpt4 key购买 nike

在我对我面临的问题进行了一些研究之后我认为有这个语句使用 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

结果是空的,但行数是正确的。

最佳答案

切勿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:

SELECT (CASE WHEN meta_key = 'property_id'
THEN CONCAT(meta_key, ' ', meta_value)
ELSE '' -- Why not `NULL`?
END) as property_id

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

谢谢(Luarb,抱歉编辑不当)

关于mysql - CONCAT(meta_key,meta_value) 到 wp_postmeta 表中的不同列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42041445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com