我正在尝试使用 ID 列作为要设置的值。
UPDATE my_items
SET my_string = "mystrin-94990"
WHERE id ="94990";
这里的问题是动态附加 my_string 列的 id。
理想情况下我想更新所有记录:
UPDATE my_items
SET my_string = "mystrin-{ID}"
WHERE my_string NOT LIKE "%{ID}%";
我相信以下内容可能有用(如果问题理解正确):-
UPDATE my_table SET my_string = my_string||id WHERE NOT instr(my_string,id);
以下演示了上述内容的作用:-
/* Clean up just in case */
DROP TABLE IF EXISTS my_items;
/* Create the table */
CREATE TABLE IF NOT EXISTS my_table (id INTEGER PRIMARY KEY, my_string);
/* load some initial data */
INSERT INTO my_table (my_string) VALUES ('ms00A'),('ms00B'),('ms00C');
INSERT INTO my_table VALUES (2000,'ms00D');
INSERT INTO my_table (my_string) VALUES ('ms00E'),('ms006F'),('ms007G');
/* show the data */
SELECT * FROM my_table;
/* initial update */
UPDATE my_table SET my_string = my_string||id WHERE NOT instr(my_string,id);
/* show the results */
SELECT * FROM my_table;
/* add some more data */
INSERT INTO my_table (my_string) VALUES ('ms00H'),('ms00I'),('ms00J');
/* update only those rows that have not been updated */
UPDATE my_table SET my_string = my_string||id WHERE NOT instr(my_string,id);
/* show the results */
SELECT * FROM my_table;
DROP TABLE IF EXISTS my_table;
初始数据(第一个选择):-
更新后:-
更新后添加了一些新行:-