我使用了这个查询:
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.
答案 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
填充新列。