gpt4 book ai didi

sql - SQlite按位操作在更新中

转载 作者:行者123 更新时间:2023-12-03 17:56:35 24 4
gpt4 key购买 nike

我有一个sqlite3 db,其中的表定义为:

CREATE TABLE test (ID INTEGER PRIMARY KEY AUTOINCREMENT, NUM INTEGER);


其中包含以下数据

ID   NUM       
--- ---
1 15


我想对 NUM列的所有值执行按位运算符并就地更新。

这就是我试图在该字段上执行按位运算的结果。

sqlite> select NUM from test | 20;



错误:“ |”附近:语法错误


如何执行按位运算,以及如何将结果保存在同一位置?

如果在同一命令中完成此操作将非常有帮助。 :)

最佳答案

怎么样:

UPDATE test
SET NUM = NUM | 20
WHERE ... ;

输出:
Before
1 - 15
After
1 - 31

DBFiddle Demo

编辑:

只是为了显示结果而不进行更新,我使用了此命令。选择NUM = NUM​​ | 20来自测试;但这给出了其他结果: https://dbfiddle.uk/?rdbms=sqlite_3.8&fiddle=04a9fe5251b377f96551e65ecded053e

select NUM = NUM | 20 from test;
-- is the same as:
SELECT NUM = (NUM | 20) FROM test;

您真正想要的是:
select NUM | 20 AS NUM from test;

关于sql - SQlite按位操作在更新中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50676425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com