我有2个表:table1
和wp_posts
。第一个是自定义表,第二个是wordpress表。
我想更改wp_posts
中符合post_title
与headline
中table1
相同且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服务器版本对应的手册,以便在#c; FROM wp_posts附近使用正确的语法JOIN table1 ON table1.headline = wp_posts.post_title W'在第1行
表格如下(大致)
表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_title
和headline
)是唯一的,因此不会有重复等。
我的ALTER
sql语句出了什么问题?
答案 0 :(得分:1)
更改下面的更新查询
<强>查询强>
UPDATE wp_posts
JOIN table1
ON table1.headline = wp_posts.post_title
SET wp_posts.post_type = 'jobs'
WHERE table1.type_id = 41;
答案 1 :(得分:1)
试试这个:
UPDATE wp_posts JOIN table1 ON table1.headline = wp_posts.post_title
SET wp_posts.post_type = 'jobs'
WHERE table1.type_id = 41;
答案 2 :(得分:0)
更新语句模式是:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
引发的错误是由您的&#39; FROM&#39;引起的。关键词。
您不能要求更新,同时使用SELECT Pattern数据。
UPDATE TABLE_NAME SET TABLE_NAME.COLUMN_NAME = 'MY CUSTOM DATA'
WHERE TABLE_NAME.[OTHER]COLUMN_NAME = 'MY PATTERN DATA';