【问题标题】:Mysql Merge 2 Columns in table but prefer first column value over secondMysql合并表中的2列,但更喜欢第一列值而不是第二列
【发布时间】:2015-07-01 23:01:26
【问题描述】:

我的数据库中有两列,例如:

 OMI   |  IUT    |    Final
------------------------------------------------
 98234 |         |   
       |  V3455  |   
 09876 |  V5537  |   

我有另一列“Final”是空的,我想将这两列合并到第三列中,例如“

 OMI   |  IUT    |    Final
------------------------------------------------
 98234 |         |   98234
       |  V3455  |   V3455
 09876 |  V5537  |   09876

基本上是这样

如果OMI为空..取IUT值
如果 IUT 为空.. 取 OMI 值
如果两者都有值,则取 OMI 值

有什么帮助吗?

【问题讨论】:

    标签: mysql merge


    【解决方案1】:

    UPDATE 表名 SET final=IF(OMI='',IUT,OMI);

    【讨论】:

    • 太棒了。只是一个小请求..我们可以创建一个新列say =“type”并填充像这样的值
      如果OMI为空..将IUT值作为FINAL并将IUT插入类型......如果IUT 为空 .. 为 FINAL 取 OMI 值并在类型中插入 OMI ......如果两者都有值,为 FiNAL 取 OMI 值并在类型中插入 OMI ......我非常感谢你的帮助.
    • ALTER TABLE 表名添加列类型 varchar(100); UPDATE 表名 SET type=IF(OMI='','IUT','OMI');
    • 如果我在更新中使用了 concat 那么如何编写查询@gulam
    • 所以不是你的第一个答案..我只是使用这个 sql 查询,我会得到我正在寻找的完整结果,或者这是额外的查询?如果我必须运行 2 个查询,您能否帮我完成一个同时完成两项任务的查询?
    • 更新表名 SET final=IF(OMI='',IUT,OMI), type=IF(OMI='','IUT','OMI');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 2018-11-02
    • 2022-01-05
    相关资源
    最近更新 更多