子串不在MySQL

时间:2017-04-05 11:23:23

标签: mysql sql substring

我在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]
;

我做错了什么?

2 个答案:

答案 0 :(得分:1)

你想要update。我会把它写成:

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

insert插入新行。 update更改现有行中的值。这就是为什么您要获得NULL的{​​{1}}值的其他行。

答案 1 :(得分:0)

插入在表中添加新条目,并且仅指定TS列,因此团队列采用空值。 你应该使用UPDATE:

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