 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Jan 11, 2017 4:48 pm Assunto: Select comparando uma lista de um campo com um id? |
|
|
Tenho uma tabela chamada usuarios que tem um campo chamado array_permissoes que contém um string assim
usuario 1
array_permissao 1,3,4,9,10
usuario 2
array_permissao 3,11
E tenho outra tabela chamada permissão com o id
integer
1
2
3
4
5
6
7
etc
Como faço um select na tabela usuario comparando com a tabela permissão e saber se tem no array_permissao
Por exemplo se eu passar o 3 numa condição where ele verifica se tiver ele retorna como is not empty _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Jan 11, 2017 4:59 pm Assunto: |
|
|
Boa tarde,
Qual banco de dados (e versão) você está utilizando? |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Jan 11, 2017 5:19 pm Assunto: |
|
|
Não tenho nenhuma experiência com o PostgreSQL, mas experimente mais ou menos dessa forma:
Código: | inner join webc_usuario u on (position(',' || cast(p.id_permissao as varchar(10)) || ',' in ',' || u.array_permissao || ',' ) > 0) |
A intenção seria converter o id da permissão para varchar e utilizar a função Position para verificar se ele está dentro do campo array_permissao.
Espero que ajude
_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-casa |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Jan 11, 2017 5:38 pm Assunto: |
|
|
imex escreveu: | Não tenho nenhuma experiência com o PostgreSQL, mas experimente mais ou menos dessa forma:
Código: | inner join webc_usuario u on (position(',' || cast(p.id_permissao as varchar(10)) || ',' in ',' || u.array_permissao || ',' ) > 0) |
A intenção seria converter o id da permissão para varchar e utilizar a função Position para verificar se ele está dentro do campo array_permissao.
Espero que ajude
_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-casa | Olá Imex, parece que deu certo
Código: | select p.id_permissao, 'usuario com permissão' as usuario
from webc_permissao p
inner join webc_usuario u on
(position(',' || cast(p.id_permissao as varchar(10)) || ',' in ',' || u.array_permissao || ',' ) > 0)
where UPPER(nome) = upper('ORÇAMENTOS')
and u.id = 7 |
pelo menos nos testes iniciais funcionou;
Obrigado Amigo. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|