Ir para o conteúdo
xplode_me

Manter valor de campo mysql, acrescentando um novo valor

Mensagens Recomendadas

xplode_me    1
xplode_me

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!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mad16v    0
mad16v

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 ????

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
shumy    17
shumy

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
xplode_me    1
xplode_me

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

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 ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
shumy    17
shumy

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)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
xplode_me    1
xplode_me

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

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade