Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nícolas

Filtrando consulta com diversos valores em um campo

Recommended Posts

E aee pessoal,

 

Seguinte, eu tenho uma tabela com uma lista de cursos com seus ids, exemplo.

 

1 - Arquitetura e Urbanismo

2 - Artes Visuais

.....

.....

.....

11 - Design gráfico

12 - Publicidade & Propaganda

 

Esse sistema é possivel cadastrar vaga para até 3 cursos.

 

Dai ele é salvo eles da seguinte forma no banco utilizando um unico campo com o nome de vg_curso.

 

1 | 5

2 | 1 | 10

11

1

12 | 11 | 1

O problema é se utilizo o like para buscar os dados quando eu passo o id na GET se eu chamo o ID 1 para ele trazer vagas cadastradas somento com o curso que tem o id 1 ele traz tb o 11, 12, 13, 14.... se chamo o 2 ele tras o 12, 20, 21, 22 e etc...

 

Acredito que para essa consulta eu deveria utiliza REGEXP / RLIKE.

 

Mas eu não manjo nada de Expressão Regular, alguém ae da uma força por favor.

 

Flw aee

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm...

veja se o FIND_IN_SET lhe ajudaria neste caso. eis a documentação do dito cujo: http://dev.mysql.com/doc/refman/5.0/en/str...ion_find-in-set

 

 

ex:

SELECT * FROM vagas WHERE FIND_IN_SET('1',REPLACE(REPLACE(vg_curso,' ',''),'|',',')) > 0

como esta função trabalha com os valores separados por vígulas e de preferência que não tenham espaços em branco, utilizei este REPLACE retirando os espaços e trocando o | por ,

 

Só que esta função só procura por um valor apenas, ou seja, utilizando esta função não daria para procurar por 1 e 2 ao mesmo tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeeee Cassitos... brigadão... funcionou direitinho aqui ^^

 

Eu até cheguei a pensar em fazer isso, quase fiz, mas achei que o FIND_IN_SET fosse somente para campo SET ae nem arrisquei, mas poo.. vlw mesmo, funcionou direitinho =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.