Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leo Barreto

Update complexo

Recommended Posts

Caros colegas de profissão estou precisando atualizar uma tabela onde o UPDATE ficaria mais ou menos assim

UPDATE nome_da_minha_tabela SET
  nome_do_campo1 = '000'
WHERE
  nome_do_campo1 IS NULL AND
  nome_do_campo1 <> '256'

Por que isso?

Porque é uma tabela onde referencia o produto à várias categorias.

Por exemplo:

Produto_A - Categoria_256

Produto_A - Categoria_2

Produto_A - Categoria_N

Produto_A - NULL

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verificar o mesmo campo se ele for NULL e diferente de 256?

 

Não faz sentido, se ele for NULL nunca terá valor algum.

 

Explicou a Query mas não colocou sua dúvida...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verificar o mesmo campo se ele for NULL e diferente de 256?

 

Não faz sentido, se ele for NULL nunca terá valor algum.

 

Explicou a Query mas não colocou sua dúvida...

Sim, como expliquei, podem existir dois registros do mesmo produto, mas de categorias diferentes ou sem categoria.

Exemplo¹: Produto A existe na categoria 256 e também existe sem categoria. Neste caso deve-se atualizar onde é NULL para categoria 000

Exemplo²: Produto B existe apenas sem categoria. Neste caso deve-se deve-se atualizar para categoria 000.

 

A minha dúvida é se existe alguma maneira de montar uma query que atenda esta minha necessidade.

 

Acho que agora consegui explicar melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

UPDATE nome_da_minha_tabela

SET nome_do_campo1 = '000'

WHERE (nome_do_campo1 IS NULL OR nome_do_campo1 <> '256')

 

 

 

Creio ser o caso de OR

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezados,

 

Estou numa situação já quebrei a cabeça e não sai de maneira nenhum.

 

Preciso realizar um UPDATE com INNER JOIN.

 

EX:

[table=TABELA A][tr]ID WEIGHT

1 0
2 0
3 0
4 0
5 0
6 0

[/tr][/table]

 

[table=TABELA B]ID NAME
1 CILINDRO
2 ROLO
3 CHIP
4 LAMINA
5 CHIP
6 PO
[/table]

 

Preciso fazer um UPDATE dos pesos na tabela A porém preciso fazer um INNER JOIN com tabela A para filtrar o texto "chip%". Ou seja preciso colocar o peso de 0.020 em todos os produtos que se iniciam com CHIP.

 

Tentei de varias formas mas resulta no seguinte erro:

 

"Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from .product inner join .product_description on .product_description.product_i' at line 2"
segue comando:
update .product set weight= 0.020
from .product inner join .product_description
on .product_description.product_id = .product.product_id
where name like "chip%"
Por favor , preciso muito disso pois são muitos produtos para fazer manual um por um.
Agradeço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.