【问题标题】:Substring not working in MySQL子字符串在 MySQL 中不起作用
【发布时间】:2017-04-05 11:23:23
【问题描述】:

我在 MySQL 中有一个表,我从中提取第一个字母并将其插入到另一个为空但未正确提取的列中。它显示空值并将表中的行数加倍并显示在另一半,如下所示。

TEAM              TS

AUSTRALIA         (NULL)
ZIMBABWE          (NULL)
GHANA             (NULL)
(NULL)             A
(NULL)             Z
(NULL)             G

但我希望通过以下方式:

TEAM              TS

AUSTRALIA         A
ZIMBABWE          Z
GHANA             G

我写了以下查询:

insert into [table_name]
 (
 TS
 ) 
 SELECT  SUBSTRING(TEAM,1,1)   
     FROM [table_name]
;

我做错了什么?

【问题讨论】:

    标签: mysql sql substring


    【解决方案1】:

    你想要update。我会这样写:

    update table_name
        set ts = left(team, 1);
    

    insert 插入新行。 update 更改现有行中的值。这就是为什么您会在team 中获得具有NULL 值的额外行。

    【讨论】:

      【解决方案2】:

      Insert 在表中添加一个新条目,并且您仅指定 TS 列,因此 team 列取空值。 你应该使用更新:

      UPDATE [table_name]
      SET table_name.TS = (SELECT  SUBSTRING(B.TEAM,1,1)   
       FROM (SELECT TEAM FROM [table_name]) AS B))
      

      【讨论】:

      • ""您不能在 FROM 子句中指定要更新的目标表""
      猜你喜欢
      • 2014-01-10
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      相关资源
      最近更新 更多