我的数据库中有两个表,tableA 和 tableB。

tableA:

id | col1  | col2  | in_b
-----------------------
1  | "abc" | "efg" | false
2  | "foo" | "bar" | false
tableB:

id | col1  | col2
------------------
1  | "abc" | "bar"

我想更新 in_b 列,以便在 col1 或 col2 的值与 tableB 中的一行匹配时为真。例如,两个 in_b 标志都为真,因为“abc”在 tableB 的 col1 中,而“bar”在 tableB 的 col2 中。 col1 和 col2 不是唯一的。

更新 in_b 标志的最佳方法是什么?

最佳答案

我想你想要一些类似的东西

UPDATE tableA
SET in_b = TRUE
    WHERE EXISTS ( SELECT 1 FROM tableB
                   WHERE (tableB.col1 = tableA.col1 OR tableB.col2 = tableA.col2)
                 )

关于mysql - 如果值存在于另一个表中,如何更新 MYSQL 列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27789956/

10-11 09:20