我有一个sqlite3 db文件,其中的表格如下
sqlite> .table
main_db test
sqlite> .schema test
CREATE TABLE test (ID INTEGER PRIMARY KEY AUTOINCREMENT, NUM INTEGER);
sqlite> .headers on
sqlite> .mode column
sqlite> select * from test;
ID NUM
---------- ----------
1 15
我想对NUM
列的所有值执行按位运算符,并在同一位置更新。
这就是我尝试在该字段上执行按位操作。
sqlite> select NUM from test | 20;
错误:靠近“|”:语法错误
如何执行此操作以及如何将结果保存在同一位置? 如果在同一命令中完成此操作将非常有用。 :)
答案 0 :(得分:0)
怎么样:
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;