【问题标题】:MySQL select 3 first characters and replace [duplicate]MySQL选择3个第一个字符并替换[重复]
【发布时间】:2017-09-05 12:37:46
【问题描述】:

我有一个简单的问题,这导致了我的问题

我在 mysql 中有一个包含名称的列,我想用名称中的前三个字符替换它们。 例如'Jacob' -> 'Jac'。

我知道 LEFT 命令,它可以为我执行此操作,但我似乎无法使用输出更新列。就像我可以做一个选择,然后得到正确的输出,但我不能用输出更新所需的列:(

我试过了:

REPLACE INTO mytable(shortnames) SELECT LEFT(names,3) FROM mytable;

【问题讨论】:

  • 向我们展示您尝试过的选择查询和更新查询
  • replace into 语句插入一条新记录,或者在重复冲突的情况下,删除旧记录并插入新记录。

标签: mysql


【解决方案1】:

我认为你需要

UPDATE mytable SET names = LEFT(names,3);

【讨论】:

  • 没问题。如果它解决了您的问题,请考虑将此标记为答案。谢谢
【解决方案2】:

我想这就是你需要的

UPDATE `table` SET `field` = LEFT(`field`, 3)

【讨论】:

    【解决方案3】:

    这可以通过一个简单的 UPDATE 查询来完成

    UPDATE table SET names = LEFT(names,3)
    

    但是,至少暂时创建另一个列并这样做可能是个好主意

    UPDATE table SET short_name = LEFT(names,3)
    

    然后要么保留两列,要么删除不再需要的列。

    当然,您可以保持原样,当您只想要简短版本时,只需像这样从 names 列中选择它

    SELECT LEFT(names,3) as short_name from table
    

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 2018-12-11
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多