【问题标题】:Removing Duplicated Substrings删除重复的子字符串
【发布时间】:2015-01-15 13:20:41
【问题描述】:

我了解以下问题可能不是最佳做法。

我有一个表,其结构如下,关键字列和标题列 concat 到 mashup 列中。

+------------+------------+------------------------ + |关键字 |标题 |混搭 | +------------+------------+------------------------ + |绿色 |绿色 |绿色 绿色 | |绿色 |西瓜 |青西瓜 | |西瓜 |西瓜 |西瓜西瓜 | +------------+------------+------------------------ +

我想知道是否有一种“去重”字符串的方法。所以我的表格看起来更像下面:

+------------+------------+------------------------ + |关键字 |标题 |混搭 | +------------+------------+------------------------ + |绿色 |绿色 |绿色 | |绿色 |西瓜 |青西瓜 | |西瓜 |西瓜 |西瓜 | +------------+------------+------------------------ +

这可能吗?我似乎找不到解决方案。谢谢!

编辑:

+------------+------------+-------------+--------- ------------------+ |关键字 |标题 |另一个 |混搭 | +------------+------------+-------------+--------- ------------------+ |绿色 |绿色 |粉色 |绿色 绿色 粉色 | |绿色 |西瓜 |黄色 |绿色西瓜黄色| |西瓜 |西瓜 |黑色 |西瓜西瓜黑| +------------+------------+-------------+--------- ------------------+

【问题讨论】:

    标签: mysql sql if-statement sql-update concat


    【解决方案1】:

    试试这个:

    UPDATE tableA 
    SET Mashup = IF(Keyword = Title, Keyword, CONCAT(Keyword, ' ', Title));
    

    查看SQL FIDDLE DEMO

    输出

    |    KEYWORD |      TITLE |           MASHUP |
    |------------|------------|------------------|
    |      Green |      Green |            Green |
    |      Green | Watermelon | Green Watermelon |
    | Watermelon | Watermelon |       Watermelon |
    

    【讨论】:

    • 非常感谢!我想我部分理解你在这里做了什么。我用另一个带有额外列的示例编辑了我的问题,如果有多个列,该怎么办?
    • 这也是在数据输入列之前完成的吗?从那时起它会自动更新吗?
    • 好的,谢谢!您还可以帮助我了解如果需要在我编辑的问题中的更多列中完成此操作会发生什么。感谢您的宝贵时间
    • 正确,但我理解 IF 语句的方式是,如果关键字 = 标题,但添加另一列,如“另一个”,它不会检查关键字 = 另一个?我错了吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2021-05-30
    • 2014-07-28
    • 2020-06-15
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    相关资源
    最近更新 更多