mysql - 在 wordpress 数据库中的 INSERT 查询中获取 SQL 语法错误

标签 mysql sql database wordpress

我正在使用下面的插入查询为所有 wordpress 帖子添加自定义字段,但是出现 Sql 语法错误我不知道我在哪里做错了

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'; 

最佳答案

您错过了用于分隔列的逗号和用于包装字符串的单引号。

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

关于mysql - 在 wordpress 数据库中的 INSERT 查询中获取 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542047/

相关文章:

php - 使用 PHP/MySQL 简化数据库/登录流程

mysql - 对两个值使用 INSERT INTO,仅对一个值使用 WHERE 子句

php - 如何在 Laravel 5 中建立三元关系

mysql - SQL在指定记录后给出X记录

java - 默认值取决于列类型 mysql

c# - 我的选择语句有什么问题?

sql-server - 跟踪锁的最佳方式 - SQL Server

Java/Android Activity 和数据库 close() 问题

php - 有效运行多个 Web/PHP 应用程序

sql - 将日期参数添加到报告 TSQL