Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos.Primeiramente quero registrar que eu realmente pesquisei antes de fazer este post, e confesso que não encontrei nada que me ajudasse. E claro, quero dizer que este fórum é de grande valia para mim.Bom, o meu problema é o seguinte:Estou desenvolvendo um banco de currículos, onde o candidato pode associar seu currículo a vários cargos, no momento do cadastro eu gravo apenas o id dos cargos separados por vírgula, por exemplo:fkid_cargo = (1,8,14,20)Agora eu preciso fazer uma busca de currículos associado a um determinado cargo, então o parâmetro da busca será o id do cargo, por exemplo se eu quero os curriculos referentes ao cargo de Administrador que contém o " id_cargo = 1 " eu passo o parâmetro " fkid_cargo=1 "Neste caso, o campo fkid_cargo contém os valores " 1,8,14,20 ", pois ele se associou a mais de um cargo. Como faço essa pesquisa, tenho que tratar o conteúdo do campo? Se sim, como tratar?Aguardo a solução deste problema e desde já agradeço a boa vontade de todos os colaboradores de fórum.Um abraço a todos.Mauro Lúcio
cara posso lhe dar uma dica... pq ao invez de você colocar no seu banco separando por , você naum coloca os numeros dentro de ()
ex: fkid_cargo = (1)(3)(10)(15)
dai quando você faria um select no seu banco você usaria fkid_cargo LIKE '%(1)%'
Valeu Daniel, dessa forma funcionou perfeitamente.GRANDE ABRAÇO
Cara, eh um negocio meio complicado.. Eu ate poderia dizer que você resolve esse problema com o LIKE, mas não é bem assim.Exemplo..Se você fosse buscar o registro cujo cargo teria id 20, seria algo mais ou menos assimSELECT FROM tabela WHERE fkid_carg LIKE '%20%';Funcionaria, porem, retornaria tambem registros cujo fkid_cargo estivesse 200, 201, 202, etc...O mais coerente seria você armazenar uma virgula ANTES e DEPOIS.Seria algo mais ou menos assim:fkid_cargo = ',1,8,14,20,'Desta forma você busca exatamente com o LIKE o id do cargo, sem a possibilidade de casar com outros ids.O select ficaria mais ou menos assimSELECT FROM tabela WHERE fkid_cargo LIKE '%,20,%'
Cara, eh um negocio meio complicado.. Eu ate poderia dizer que você resolve esse problema com o LIKE, mas não é bem assim.Exemplo..Se você fosse buscar o registro cujo cargo teria id 20, seria algo mais ou menos assimSELECT FROM tabela WHERE fkid_carg LIKE '%20%';Funcionaria, porem, retornaria tambem registros cujo fkid_cargo estivesse 200, 201, 202, etc...O mais coerente seria você armazenar uma virgula ANTES e DEPOIS.Seria algo mais ou menos assim:fkid_cargo = ',1,8,14,20,'Desta forma você busca exatamente com o LIKE o id do cargo, sem a possibilidade de casar com outros ids.O select ficaria mais ou menos assimSELECT FROM tabela WHERE fkid_cargo LIKE '%,20,%'