SQLite - aumenta o valor em um certo número


93

é possível aumentar um certo valor em uma tabela por um certo número sem ler o último valor e depois atualizá-lo?

ou seja, tenho as colunas "produto" e "qualidade": produto: qualidade iLamp: 50

Desejo aumentar (ou diminuir) a qualidade em x. Para conseguir isso, primeiro estou lendo o último valor (50), aumentando ou diminuindo-o e escrevendo-o de volta.

Existe uma maneira direta de concluir esta tarefa?

Respostas:


201

Amostra 1 (para todas as linhas):

UPDATE Products SET Price = Price + 50

Amostra 2 (para uma linha específica):

UPDATE Products SET Price = Price + 50 WHERE ProductID = 1

Amostra 3 (genérica):

UPDATE {Table} SET {Column} = {Column} + {Value} WHERE {Condition}

Onde:

  • {Table} - Nome da tabela
  • {Column} - nome da coluna
  • {Value} - um número pelo qual o valor da coluna deve ser aumentado ou diminuído
  • {Condition} - alguma condição, se houver

3
FROM é uma palavra-chave SQLite? Os documentos não parecem indicar isso. sqlite.org/lang_update.html
Jason S

como isso pode ser feito em python com sqlite3? Eu preciso atualizar um col + = 1 onde na primeira coluna =?
st.ph.n

@ user3358205: Como o homem disse ...UPDATE table SET col = col + 1 WHERE first_column = ?
Mumbleskates

Para incrementar em uma lista de critérios , faça algo comoUPDATE Products SET Price = Price + 50 WHERE [ProductID] IN [1,3,56,78,44,23,8989,23]
zelusp

@Konstantin é possível incrementar todo o valor da linha de uma coluna? Digamos que se as linhas existentes são "R, S, T", então deveria ser 'R1, S2, T3'. Alguma sugestão ?
CoDe
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.