【问题标题】:Error while updating table value [duplicate]更新表值时出错[重复]
【发布时间】:2016-02-08 10:06:19
【问题描述】:

我有 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”附近使用正确的语法

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

table1

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 语句有什么问题?

【问题讨论】:

  • 语法中没有更新 ...set ...。
  • 更新语法为Update table set column=value where conditions
  • 我是 mysql 的初学者(实际上我是被扔进去的,主要不是我的领域),所以我不知道正确的方法。感谢您的澄清。

标签: php mysql sql wordpress


【解决方案1】:

试试这个:

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

【讨论】:

  • 这成功了。谢谢。我会在 8 分钟内接受它
【解决方案2】:

如下更改更新查询

查询

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

【讨论】:

  • 这个和上面一样,但他是第一个,所以我接受他的。谢谢+1
  • @dingo_d :我们俩同时回答。反正没问题..谢谢
  • 是的,但是当你按最旧的标签排序时,他的排在第一位……没有难过的感觉:)
【解决方案3】:

更新语句模式是:

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

【讨论】:

  • 感谢您的信息,我会调查一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 2022-01-18
  • 2017-12-27
  • 2015-08-24
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多