GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Select Mysql com if

mysql
Tags: #<Tag:0x00007fdbd1847650>

#1

Boa tarde a todos.

Sei somente o básico em SQL, mas preciso fazer um SELECT no MySQL com as seguintes informações:

SELECT Campo_Data_TABELA_HISTORICO , Campo_Matricula_TABELA_HISTORICO, IF (character_length( Campo_Matricula_TABELA_HISTORICO ) > 6, SELECT Nome_Funcionario_TABELA_FUNCIONARIO where …, SELECT Nome_Visitante_TABELA_VISITANTE where … ) …

O meu problemas esta sendo no IF, pois o comando sem o IF funciona perfeitamente.

Não encontrei exemplos parecidos até o momento.

Agradeço desde já a ajuda.


#2

Tentando melhorar a explicação: Quero fazer o teste com IF, para fazer um segundo SELECT.
Se TRUE: SELECT o nome do visitante na tabela Visitante.
Se FALSE: SELECT o nome do funcionário na tabela Funcionário.

Não sei se isso é possível, mas se alguém sobre de algo sobre já agradeço.


#3

Um case não atende o que você precisa ?

Exemplo:

SELECT
	CASE CHARACTER_LENGTH(Campo_Matricula_TABELA_HISTORICO) WHEN 6 THEN
		//Busca na tabela de visitante
	ELSE
		//Busca na tabela de funcionário
	END 
FROM 
	SUA_TABELA;

#4

Ou caso queira permanecer com o uso do IF mesmo, isola as consultas!

SELECT IF(CHARACTER_LENGTH(Campo_Matricula_TABELA_HISTORICO) > 6, 
         (SELECT NOME_FUNCIONARIO FROM TABELA_FUNCIONARIO), 
         (SELECT NOME_VISITANTE FROM TABELA_VISITANTE)) AS NOME 
FROM SUA_TABELA;