MySql和Wordpress查询语法

时间:2009-09-01 17:56:58

标签: mysql wordpress syntax

我正在尝试学习用于Wordpress的MySQL查询....

我所知道的是这个查询,如果字段为NULL,则为自定义字段“description”的所有实例提供“test”的值

UPDATE `wp_postmeta` SET `meta_value` = 'test' WHERE `meta_key` LIKE 'description' and `meta_value` is null

我需要做的是改变它,这样我就可以写一个类别;类别存储在wp_term, like this: WHERE term_id = '3'

但是,这会引发语法错误:

UPDATE `wp_postmeta` SET `meta_value` = 'test' WHERE `meta_key` LIKE 'description' and `meta_value` is null WHERE term_id = '3'

所以我做错了;我认为与类别相关的语法比在另一个“WHERE”中标记要复杂得多。

4 个答案:

答案 0 :(得分:2)

您不应该直接查询SQL。 wordpress中内置了一个抽象层。

您应该使用wp_query函数:

http://codex.wordpress.org/Function_Reference/WP_Query

答案 1 :(得分:1)

这可能是吗?

更新wp_postmeta设置meta_value ='测试'WHERE meta_key LIKE'说明'和meta_value为空 AND term_id ='3'

在我看来,我也遇到了问题;

还有你应该研究的update_post_meta()函数

http://codex.wordpress.org/Function_Reference/update_post_meta

答案 2 :(得分:1)

这是我的头脑。您想要用来更新类别的是wp_update_term

wp_update_term(3,'category',array(
    'name' => 'new name',
    'description' => 'new description'
));

您不必同时包含名称和说明,只需包含正在更改的名称和说明。 wp_update_term会将这些新数据合并到旧数据中,这样只有您提供的数据才会被更改。

既然我已经再次阅读该帖子,我不确定这是否能解决问题。我不能老实告诉你SQL的目标是什么......

答案 3 :(得分:0)

如果你在WordPress引擎中运行,你应该使用WordPress函数,要创建一个有效的SQL语句,将你的第二个“WHERE”转换为“和”你有一个有效的SQL查询。您正在描述一个由三部分组成的WHERE语句,可以显示为:

WHERE (`meta_key` LIKE 'description') AND (`meta_value` is null) AND (`term_id` = '3')