如何从同一表MySQL中的另一列插入3个字符

时间:2017-08-30 13:49:25

标签: mysql

我使用了这个查询:

SELECT
    nipk,
    nipk_urut
FROM db_duk.tb_kontrak;

INSERT INTO db_duk.tb_kontrak (nipk_urut)
SELECT RIGHT(db_duk.tb_kontrak(nipk), 3)
FROM db_duk.tb_kontrak;

但是我收到了以下错误:

1305 FUNCTION db_duk.tb_kontrak does not exist.

1 个答案:

答案 0 :(得分:2)

以下语法应该有效:

INSERT INTO db_duk.tb_kontrak (nipk_urut)
SELECT RIGHT(nipk, 3)
FROM db_duk.tb_kontrak;

但我不知道这是否合乎逻辑。如果你打算用前三个字母替换每个值,那么你会想要做一个更新,如下所示:

UPDATE db_duk.tb_kontrak
SET nipk_urut = RIGHT(nipk, 3)
-- WHERE <some condition>

<强>更新

根据您的评论,您似乎想要创建新列nipk_urut,然后使用已存在的nipk列中的最后3个字符填充该列。您可以尝试类似于以下内容的语句来创建此列:

ALTER TABLE db_duk.tb_kontrak ADD COLUMN nipk_urut VARCHAR(50);

然后,执行以上UPDATE填充新列。