【发布时间】:2020-10-02 08:38:52
【问题描述】:
我正在寻找的是只更新表中的 1 行,其中所有条目一开始都是零。
在网上浏览了一段时间后,我发现LIMIT 应该可以与UPDATE 一起使用,但也不完全正确。从我所见,我应该用SQLITE_ENABLE_UPDATE_DELETE_LIMIT“启用”一些东西,但我不知道那是什么,也不知道我应该在何时何地完成它。
对于我的情况,我还看到了不同的解决方案,例如:
UPDATE Table_name
Set Column_name= new_value
WHERE Column_name IN
( SELECT Column_name
FROM Table_name
WHERE Column_name = initial_value
LIMIT 1
)
但是,出于某种原因,这对我不起作用。 LIMIT 1 完全没有效果,因为整个列都被修改了。
是因为我在SET/SELECT 和WHERE 中使用了相同的列名吗?
我的表格只包含一列。
【问题讨论】:
-
您必须首先构建一个自定义版本的 sqlite3.c 并启用更新限制,然后使用定义的
SQLITE_ENABLE_UPDATE_DELETE_LIMIT编译它。如果您对 C 和从源代码构建东西感到满意,这很容易。如果您使用其他语言?祝你好运。
标签: sql sqlite sql-order-by sql-delete sql-limit