【问题标题】:How do I update SQL query Yes/No?如何更新 SQL 查询是/否?
【发布时间】:2022-01-29 17:09:58
【问题描述】:

我需要使用 if 条件比较另一个表来更新 sql 表。例如,如果“a”表中的电话号码与“b”表匹配。新列 'flag' 更新为 Y/N。

这是代码,'Y' 可以正常工作,但是如何使用 'N' 更新 NULL 或空字符串

代码如下:

update table_1 as a

set flag = 'Y'

from table_2 as b

where a.phone_numbers = b.phone_numbers

它成功地为'Y'工作,但我如何为'N'实现

感谢您的宝贵时间||

【问题讨论】:

  • 这可能会有所帮助 stackoverflow.com/questions/1262786/… 而不是 INNER JOIN 它将是 LEFT JOIN 然后您将检查空值/空值。
  • 这是代码 这段代码在 MySQL 中显然是语法错误。请仔细检查您的 DBMS 并相应调整问题标签!

标签: mysql sql


【解决方案1】:

使用 LEFT 连接 table_1table_2

UPDATE table_1 t1
LEFT JOIN table_2 t2 ON t2.phone_numbers = t1.phone_numbers
SET t1.flag = CASE WHEN t2.phone_numbers IS NOT NULL THEN 'Y' ELSE 'N' END;

【讨论】:

    【解决方案2】:

    我认为这对你有用。我所做的只是将'Y'替换为'N'并将=符号更改为!=,这意味着'不等于'。

    使用这两个查询你应该得到你想要的结果。

    update table_1 as a
    
    set flag = 'N'
    
    from table_2 as b
    
    where a.phone_numbers != b.phone_numbers
    

    【讨论】:

    • 我需要两个是/否
    • 如果 table_2 包含 2 个或更多不同的非 NULL phone_numbers 值,则在使用此查询时将更新 table_1 的所有行。
    猜你喜欢
    • 1970-01-01
    • 2020-09-28
    • 2015-05-20
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多