更新表值时出错


Error while updating table value

我有 2 个表:table1wp_posts 。第一个是自定义表,第二个是wordpress表。

我想更改wp_posts中符合以下条件的所有帖子类型:post_titletable1中的headline相同,并且type_id键等于 41。

我尝试选择此类帖子

SELECT * FROM wp_posts LEFT JOIN table1 ON table1.headline = wp_posts.post_title WHERE table1.type_id = 41

我得到了正确的帖子(我在phpmyadmin中这样做(。

所以我尝试了

UPDATE wp_posts SET wp_posts.post_type = 'jobs' FROM wp_posts JOIN table1 ON table1.headline = wp_posts.post_title WHERE table1.type_id = 41

我收到一个错误

#1064 - 您的 SQL 语法有误;请查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的"FROM wp_posts JOIN table1 ON table1.headline = wp_posts.post_title W"附近使用的正确语法

表格看起来像这样(大致(

表1

headline  |  type_id
--------------------
Random    |  41
Random 2  |  41

wp_posts

post_title  |  post_type
--------------------
Random      |  post
Random 2    |  post

我需要将post更改为jobs

post_title  |  post_type
--------------------
Random      |  jobs
Random 2    |  jobs

名称(post_titleheadline(是唯一的,因此不会有重复等。

我的 ALTER sql 语句有什么问题?

试试这个:

UPDATE wp_posts JOIN table1 ON table1.headline = wp_posts.post_title
SET wp_posts.post_type = 'jobs' 
WHERE table1.type_id = 41;

更改更新查询,如下所示

查询

UPDATE wp_posts
JOIN table1
ON table1.headline = wp_posts.post_title
SET wp_posts.post_type = 'jobs'
WHERE table1.type_id = 41;

更新语句模式为:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]

抛出的错误是由您的"FROM"关键字引起的。

您不能要求更新并同时使用 SELECT 模式数据。

UPDATE TABLE_NAME SET TABLE_NAME.COLUMN_NAME = 'MY CUSTOM DATA' 
WHERE TABLE_NAME.[OTHER]COLUMN_NAME = 'MY PATTERN DATA';

MYSQL链接 : http://dev.mysql.com/doc/refman/5.7/en/update.html