1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Erro com query zerando valores

Olá fiz a seguinte query


UPDATE naoehumadb.acc_reg_num
SET naoehumadb.acc_reg_num.`value`= naoehumadb.acc_reg_num.`value`+(SELECT quantidade 
 FROM naoehumadb.site_doacoes WHERE naoehumadb.site_doacoes.account_id = naoehumadb.acc_reg_num.account_id && naoehumadb.site_doacoes.`status` = 'pago'
 ORDER BY naoehumadb.site_doacoes.account_id DESC LIMIT 1
)*1000 , naoehumadb.acc_reg_num.pagopag=1;

UPDATE naoehumadb.site_doacoes
SET naoehumadb.site_doacoes.`status` = 'entregue' 
WHERE naoehumadb.site_doacoes.`status` = 'pago';

quando executo ela pela primeira vez ela adiciona os valores da tabela doações normalmente, porem ao executar uma segunda vez ela zera todos os valores da primeira tabela :/ olhe as saidas


UPDATE naoehumadb.acc_reg_num
SET naoehumadb.acc_reg_num.`value`= naoehumadb.acc_reg_num.`value`+(SELECT quantidade 
 FROM naoehumadb.site_doacoes WHERE naoehumadb.site_doacoes.account_id = naoehumadb.acc_reg_num.account_id && naoehumadb.site_doacoes.`status` = 'pago'
 ORDER BY naoehumadb.site_doacoes.account_id DESC LIMIT 1
)*1000;
Affected rows: 42
Time: 0.208s

[SQL]

UPDATE naoehumadb.site_doacoes
SET naoehumadb.site_doacoes.`status` = 'entregue' 
WHERE naoehumadb.site_doacoes.`status` = 'pago';
Affected rows: 28
Time: 0.177s

E quando roda uma segunda vez.


UPDATE naoehumadb.acc_reg_num
SET naoehumadb.acc_reg_num.`value`= naoehumadb.acc_reg_num.`value`+(SELECT quantidade 
 FROM naoehumadb.site_doacoes WHERE naoehumadb.site_doacoes.account_id = naoehumadb.acc_reg_num.account_id && naoehumadb.site_doacoes.`status` = 'pago'
 ORDER BY naoehumadb.site_doacoes.account_id DESC LIMIT 1
)*1000;
Affected rows: 42
Time: 0.208s

[SQL]

UPDATE naoehumadb.site_doacoes
SET naoehumadb.site_doacoes.`status` = 'entregue' 
WHERE naoehumadb.site_doacoes.`status` = 'pago';
Affected rows: 0
Time: 0.177s

E na terceira


UPDATE naoehumadb.acc_reg_num
SET naoehumadb.acc_reg_num.`value`= naoehumadb.acc_reg_num.`value`+(SELECT quantidade 
 FROM naoehumadb.site_doacoes WHERE naoehumadb.site_doacoes.account_id = naoehumadb.acc_reg_num.account_id && naoehumadb.site_doacoes.`status` = 'pago'
 ORDER BY naoehumadb.site_doacoes.account_id DESC LIMIT 1
)*1000;
Affected rows: 0
Time: 0.208s

[SQL]

UPDATE naoehumadb.site_doacoes
SET naoehumadb.site_doacoes.`status` = 'entregue' 
WHERE naoehumadb.site_doacoes.`status` = 'pago';
Affected rows: 0
Time: 0.177s
  • Os valores são diferentes ou são os mesmo ?

    Bruno H.   20 de set de 2017
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mysql ou faça a sua própria pergunta.