Ir para conteúdo

POWERED BY:

Arquivado

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

leooizepi

update com uma select no where

Recommended Posts

galera... to com um problema grande! conto com vcs!!!

 

é o seguinte..

tenho um campo na minha tabela 'status', esse status recebe valor 's' ou 'n', só q eu nao posso ter mais q 1 registro com valor 's'.......

 

ai tenho um arquivo q altera esse valor.... como faço para setar o novo registro em 's' e os outros como 'n'???????????????

 

minha tabela

CREATE TABLE `empresa` (
  `id_empresa` int(3) NOT NULL auto_increment,
  `texto` text NOT NULL,
  `status` char(1) NOT NULL,
  PRIMARY KEY  (`id_empresa`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você quer setar o mais novo para status = 's' faz assim

update empresa set status = 'S' where id_empresa = (select max(id_empresa) from empresa)
mas seria melhor você já trocar para no insert

e para trocar todos os outro para 'N' faz assim

update empresa set status = 'N' where id_empresa not in (select max(id_empresa) from empresa)

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao quero trocar para o mais novo.

 

o usuario tem opção de escolher... entao pode ser o registro 1, 4, 6, 2...

 

e ae. como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí não precisa de select se é o usuário que vai escolher

é só usar o in no update

update empresa set status = 'S' where id_empresa in (%valores%)

só precisa nessa variável os valores estarem separados por vírgulas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja esta um registro com 's'

 

se eu fizer isso.. vai ficar 2 registros... eu tenho q tirar o 's' do antigo e colocar o q usario escolheu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

update empresa set status = 'N' 

update empresa set status = 'S' where id_empresa in (%valores%)

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu.. deu certo!!!

 

mais fica o desafio.. fazer esse problema com apenas uma sql!!

 

valeu!! abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais fica o desafio.. fazer esse problema com apenas uma sql!!

??????

 

é só usar um case no update

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.