前置:
我在Sqlite3-DB中具有表“基准”。
表“基准”具有以下列:
字
计数器
题:
任何想法如何让sqlite3引擎(如果效率更高)可以为我执行以下操作:
如果表“基线”已经具有带有主键“ word”的元素,则在插入时不要替换该行,而要在旧计数器和新计数器之间进行加法。
例
执行以下插入命令后:
"INSERT INTO baseline(word, counter) VALUES 'bla', 1; "
"INSERT INTO baseline(word, counter) VALUES 'bla', 1; "
我想从数据库中获取以下数据:
>>> "SELECT * FROM baseline;"
'("bla", 2)'
提前谢谢=)
最佳答案
如果单词是主键,即:
CREATE TABLE baseline (word TEXT PRIMARY KEY, counter INTEGER);
然后,以下方法将起作用:
INSERT OR REPLACE INTO baseline VALUES (
'foo',
COALESCE((SELECT counter FROM baseline WHERE word='foo'), 0) + 1
);
COALESCE()
函数将返回计数(如果表中存在单词),否则返回0。关于python - PYTHON SQLITE3插入:如果存在,则进行添加,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52043323/