• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

xplode_me

Manter valor de campo mysql, acrescentando um novo valor

8 mensagens neste tópico

Ora vamos ver se me consigo explicar....

Tenho uma tabela Mysql "clientes" que tem uma coluna "registos".

Para cada cliente podem haver varios "registos". Ou seja, a dado momento o campo "registos" dum cliente pode ser (exemplo) "1 13 25".

O que eu pretendia era uma query mysql que me mantivesse o valor do campo apenas concatenando com " $novo_valor".

Ou seja quando tivesse "1" e eu quisesse acrescentar "13" ele apenas concatenar " 13" ao campo tornando-o assim "1 13".

É possivel fazer isto so com uma query UPDATE ?

Existe alguma solucao mais elegante?

Todas as opiniões são muito bem-vindas!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

campo1 inicialmente com 1

UPDATE tabela SET campo1 = CONCAT( campo1 , " 13", " 26" ) WHERE id = 1

após UPDATE, campo1 com 1 13 26

é isto que queres ????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso pode ser executado. Mas não está da forma como deve ser feito.

Se o cliente tem propriedades que vão sendo acrescentadas, aconselho a criar mais uma tabela.

Tudo o que foge ao padrão normal de organização, torna-se mais dificil de gerir.

Só que por vezes até nem é possivel fazer as coisas bem organizadas. Mas isso só deve acontecer numa actualização de um projecto, em que o que está feito já não pode ser alterado. Se estás a começar, é injustificável fazer a organização dessa forma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Entao como sugeres shumy?

A questão é contratos. Cada contrato pode ter (e tem) mais de uma pessoa pessoa envolvida. Sendo que sao referenciadas no campo "proponentes" pelo seu id (que fica armazenado numa tabela de "pessoas").

Ou seja se o Manuel = 1 e a Joana = 2, entao um contrato com os dois teria no campo "proponentes" os valores "1 2".

É um erro assim tão grosseiro? Aceito sugestões.

Cumprimentos e obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tal como diz o shumy, mais uma tabela "contractos" com os seguintes campos: id cod_contrat cliente proponente

os registos seriam adicionados no seguinte formato

'ID1' 'contr_001' 'cliente_001' 'prop_1'

'ID2' 'contr_001' 'cliente_001' 'prop_2'

'ID3' 'contr_001' 'cliente_001' 'prop_26'

Ao fazer SELECT contractos.proponente FROM contractos WHERE cod_contrat='contr_001' AND cliente='cliente_001'

Váis buscar os proponentes do contrato 001 com o cliente 001

Axo mais simples e organizado...

Mas digam de vossa justiça ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma tabela "Pessoa" com chave primária:

IDPessoa, (Informação Pessoal/referencias para informação pessoal)

Uma tabela "Contracto" com duas chaves estrangeiras:

RefIDPessoa1, RefIDPessoa2,(Eventualmente informação de contracto/referencias para informações)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acabei por usar a solucao de mais uma tabela, é mais elegante sem dúvida.

De qualquer maneira, fica o conhecimento. Obrigado a todos :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora