【问题标题】:Unknown column '"' in 'where clause [MySQL]'where 子句 [MySQL] 中的未知列 '"'
【发布时间】:2021-09-19 18:21:32
【问题描述】:

当我尝试执行此查询时,我收到此错误Erreur SQL (1054) : Unknown column 'pk.post_id' in 'where clause'。 p>

UPDATE `wp_posts` as pm  
SET pm.post_content = 
   (select meta_value from `wp_postmeta` as pk where pk.post_id = pm.id and pk.meta_key = "_job_description") 
 WHERE  pm.id = pk.post_id;

我不知道如何解决它。你能帮我解决这个问题吗?

【问题讨论】:

  • 旁注:不要习惯在字符串或日期文字中使用双引号。是的,遗憾的是 MySQL 接受了这一点,但在 SQL 中,双引号通常用于标识符,例如列名。如果您曾经使用过另一个 DBMS(或者未来的 MySQL 版本对此更加清醒),您可能会收到“无效的对象名称”错误。始终对字符串或日期文字使用单引号。
  • 使用单引号。
  • pk.post_id 不在外部查询范围内,仅在内部查询范围内。你不能在外部查询中使用它,删除它。

标签: mysql wordpress xampp


【解决方案1】:

您必须使用多表 UPDATE 语法:

UPDATE `wp_posts` as pm  
JOIN `wp_postmeta` as pk ON pm.id = pk.post_id 
                        AND pk.meta_key = '_job_description'
SET pm.post_content = pk.meta_value;

https://dev.mysql.com/doc/refman/8.0/en/update.html

【讨论】:

    猜你喜欢
    • 2018-04-01
    • 2017-06-05
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多