aplicação com mysql

10 respostas
Mara1

Tenho uma tabela com 10 campos, mas o usuário não insere todos ,apenas alguns, e em quantidades e campos diferentes…
Preciso fazer uma seleção onde apareça apenas os valores não nulos…de determinada chave primaria…

tipo : SELECT * FROM aluno WHERE matricula=1

mas…não sei como fazer para aparecer apenas os valores que não sejam nulos…

Alguém poderia me ajudar ?? :wink:

10 Respostas

diego.sas

Bom dia Mara.

SELECT * FROM aluno WHERE matricula is not NULL

Tenta ai

Flw

yhhik

se vc sabe quais valores estao preenchidos vc pode fazer assim:

SELECT `nome` FROM aluno where id=1;

so vai retornar o none do aluno com id 1

Mara1

O problema é que eu não sei quais campos estão nulos ou não… isso depende das necessidades dos usuários…eu preciso consultar pela matricula, que no caso é a chave primária…

ex:

matricula / aluno / escola / turma

001 /A /B /C

002 /null /D /null

003 /E /null /F

Preciso consultar o aluno pela matricula apenas os campos não nulos…

ex: consultar o aluno de matricula 002

matricula/escola
002 /D

W

Mara*:
O problema é que eu não sei quais campos estão nulos ou não… isso depende das necessidades dos usuários…eu preciso consultar pela matricula, que no caso é a chave primária…

ex:

matricula / aluno / escola / turma

001 /A /B /C

002 /null /D /null

003 /E /null /F

Preciso consultar o aluno pela matricula apenas os campos não nulos…

ex: consultar o aluno de matricula 002

matricula/escola
002 /D

Nao entendi. Vc quer consultar por exemplo, aluno com matricula 002 onde os campos aluno, escola e turma nao sao nulo???
Se for isso vc vai ter que colocar um AND para cada campo, tipo:

select * from alunos where matricula = '002' and escola is not null and turma is not null and turma is not null;

De qualquer forma, melhor vc re-modelar o seu banco, faz sentido vc ter um registro no banco onde consta somente um numero de matricula??
Pra mim, parece estranho.

//Daniel

yhhik

ae é complicado…
não sei se tem como…
acho que vc vai ter que pegar todos os dados no select e na aplicação verificar quais dados estao nulos para depois mostra-los.

Mara1

Bom … é isso msm que eu preciso yhhik … mas não sei como fazer isso.

não dá pr verificar usando

select * from alunos where matricula = ‘002’ and escola is not null and turma is not null and turma is not null;

pois não sei quais campos tem valores nulos

e na aplicação…a matricula é encontrada pelo usuario…

ps: isso é um exemplo, na minha tabela tem mais campos.

yhhik

isso vai te dar um trabalho muito grande na view.
tendo em vista esse contexto eu faria assim
seu select vai retornar um aluno correto?
vamo supor que vc vai preencher um textfield com a turma e esse campo nao foi utilizado.

eu faria uma condição

if(aluno.getTurma().equals(""))

JTextField aluno=new JTextField("Campo nao utilizado!");
else

JTextField aluno=new JTextField(aluno.getTurma());

mas se fosse vc colocaria td not null.

Mara1

Vai retornar todos os campos que não sejam nulos…

em alguns pode ser aluno e escola, outros escola e turma…vai depender de qual aluno o usuario quer consultar…e o que esse aluno tem não nulo.

não consigo separar os campos nulos dos não nulos’

yhhik

windsofhell:
Mara*:
O problema é que eu não sei quais campos estão nulos ou não… isso depende das necessidades dos usuários…eu preciso consultar pela matricula, que no caso é a chave primária…

ex:

matricula / aluno / escola / turma

001 /A /B /C

002 /null /D /null

003 /E /null /F

Preciso consultar o aluno pela matricula apenas os campos não nulos…

ex: consultar o aluno de matricula 002

matricula/escola
002 /D

Nao entendi. Vc quer consultar por exemplo, aluno com matricula 002 onde os campos aluno, escola e turma nao sao nulo???
Se for isso vc vai ter que colocar um AND para cada campo, tipo:

select * from alunos where matricula = '002' and escola is not null and turma is not null and turma is not null;

De qualquer forma, melhor vc re-modelar o seu banco, faz sentido vc ter um registro no banco onde consta somente um numero de matricula??
Pra mim, parece estranho.

//Daniel

o conselho do colega acima é o melhor no seu caso.
remodele seu banco

faça uma tabela aluno uma tabela escola e uma tabela e uma tabela turma.
assim ficará mais fácil.

Mara1

É…vou tentar…mando resposta assim que der certo…obrigado pelas dicas…

Criado 31 de outubro de 2011
Ultima resposta 31 de out. de 2011
Respostas 10
Participantes 4