2013-03-21 107 views
1

我使用下面插入查询添加自定义提交了所有的WordPress的职位,但得到的SQL语法错误,我不知道在哪里即时做错了获取SQL语法错误在INSERT查询在WordPress数据库

INSERT INTO wp_postmeta (post_id, meta_key, meta_value) 
SELECT ID AS post_id, 'CustomField' 
AS meta_key 'MyValue AS meta_value 
FROM wp_posts WHERE ID NOT IN 
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'CustomField') 
'' AND post_type = 'post'; 

回答

2

你错过了逗号的分隔列和单引号以包裹字符串。

INSERT INTO wp_postmeta (post_id, meta_key, meta_value) 
SELECT ID AS post_id, 
     'CustomField' AS meta_key, 
     'MyValue' AS meta_value 
FROM wp_posts 
WHERE ID NOT IN 
     (SELECT post_id 
     FROM wp_postmeta 
     WHERE meta_key = 'CustomField') 
     AND post_type = 'post'; 

使用NOT IN的另一种方法是通过连接两个表,

INSERT INTO wp_postmeta (post_id, meta_key, meta_value) 
SELECT a.ID AS post_id, 
     'CustomField' AS meta_key, 
     'MyValue' AS meta_value 
FROM wp_posts a 
     LEFT JOIN wp_postmeta b 
      ON a.ID = b.post_id AND 
       b.meta_key = 'CustomField' 
WHERE a.post_type = 'post' AND 
     b.post_id IS NULL 
+0

感谢@jW快速响应 – 2013-03-21 07:56:54

+0

欢迎您':D' – 2013-03-21 07:57:23