SELECT descricao FROM servicos WHERE id IN (SELECT servicos FROM geral WHERE id = '1')
Nesse caso, ele sempre retorna apenas uma linha como resultado, quando deveria retornar duas, a subquery:
SELECT servicos FROM geral WHERE id = '1'
Retorna exatamente: 1,3
Então, a minha idéia é que buscasse a coluna descricao da tabela serviços em que o id fosse igual a 1 e 3, mas não retorna, só retorna o primeiro, ou seja, o id igual a 1, se eu altero no BD e inverto (3,1) ele busca o do id igual a 3 e ignora o igual a 1, se eu jogo direto:
SELECT descricao FROM servicos WHERE id IN (1,3)
Retorna o resultado da forma correta, buscando os dois ids (1 e 3), não estou entendendo o porque disso, inclusive se eu faço duas querys, ou seja, primeiro:
SELECT servicos FROM geral WHERE id = '1'
Ai resgato os dado e uso esses mesmos dados na segunda:
SELECT descricao FROM servicos WHERE id IN ($dados_resgatados_da_primeira)
Também funciona perfeitamente...
EDIT: Despois de trocar umas idéias me deram a dica de usar INSTR, a query ficou:
SELECT descricao FROM servicos WHERE instr((SELECT servicos FROM geral WHERE id = '1'),id)
Com isso dai funcionou perfeitamente.
EDIT 2: Já achei um problema na solução, ela retorna falsos positivos...
Pergunta
ESerra
Preciso entender porque o seguinte não funciona:
Nesse caso, ele sempre retorna apenas uma linha como resultado, quando deveria retornar duas, a subquery: Retorna exatamente: 1,3 Então, a minha idéia é que buscasse a coluna descricao da tabela serviços em que o id fosse igual a 1 e 3, mas não retorna, só retorna o primeiro, ou seja, o id igual a 1, se eu altero no BD e inverto (3,1) ele busca o do id igual a 3 e ignora o igual a 1, se eu jogo direto: Retorna o resultado da forma correta, buscando os dois ids (1 e 3), não estou entendendo o porque disso, inclusive se eu faço duas querys, ou seja, primeiro: Ai resgato os dado e uso esses mesmos dados na segunda: Também funciona perfeitamente... EDIT: Despois de trocar umas idéias me deram a dica de usar INSTR, a query ficou:Com isso dai funcionou perfeitamente.
EDIT 2: Já achei um problema na solução, ela retorna falsos positivos...
Editado por ESerraLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.