SQlite побитовая операция в обновлении - PullRequest
0 голосов
/ 04 июня 2018

У меня есть sqlite3 db, в которой таблица определена как:

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

со следующими данными в ней

ID   NUM       
---  ---
1    15        

Я хочу выполнять побитовые операции на всехзначения столбца NUM и обновление на месте.

Это то, что я пытался просто выполнить побитовую операцию над этим полем.

sqlite> select NUM from test | 20;

Ошибка: около "|": синтаксическая ошибка

Как выполнить побитовую операцию, а также как сохранить результат в том же месте?

Было бы очень полезно, если бы это было сделано в той же команде,:)

1 Ответ

0 голосов
/ 04 июня 2018

Как насчет:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...