【问题标题】:Updating database table based on condition set in another table?根据另一个表中设置的条件更新数据库表?
【发布时间】:2017-07-13 15:43:12
【问题描述】:

如何在 2 个表之间设置条件?

1 个表的 ID 值需要根据另一个表中设置的值进行更改。

到目前为止我的查询......不知道它是否有效。

UPDATE table1 set value='2' INNER JOIN table2 WHERE CONVERT(value USING utf8) LIKE '%text%') 所以当第一个表中的值为 2 时,表 2 中的相同项目将被分配一个特定的类别。查询应检查表 2 中的 ID 是否与表 1 中包含该值的 ID 相同。

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。还提供样本数据和期望的结果。您的联接没有 ON 子句。
  • @GordonLinoff 使用 mysql 数据库。

标签: mysql sql database join inner-join


【解决方案1】:

您的代码看起来像 MySQL。如果是这样,正确的语法更像是这样的:

UPDATE table1 t1 INNER JOIN
       table2 t2
       ON t1.id = t2.id
    set t1.value = '2' 
WHERE CONVERT(t1.value USING utf8) LIKE '%text%');

您的问题对实际的JOIN 条件有点模糊,但这是查询的结构。

【讨论】:

  • 表 1 是条件,表 2 是要更新的数据。当表 1 中某个 ID 的值包含某个文本时,该表中的 ID 将被设置为表 2 中的特定值。所以如果表 1 中的 200 行包含我需要的文本,那么表 2 中的 200 行将是改变了。为什么您的查询中有table1 t1table2 t2?为什么不只是table1table2
  • 必须更正列名,但查询有效(当然使用我的数据库表的名称)。
猜你喜欢
  • 2022-12-12
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多