Ir para conteúdo

POWERED BY:

Arquivado

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

Joao Paulo M.

Retornar dois resultados para uma mesma linha

Recommended Posts

Eu gostaria que alguem me desse uma luz de como eu poderia fazer uma consulta que me retornasse uma contagem maior que 1 para uma unica linha, isso em uma mesma query.

Vou exemplificar para ficar facil de entender

 

tenho uma coluna chamada 'idade' e nessa coluna tenho um valor assim: 15;20;15 (indicando as idades respectivamente de 3 pessoas).

agora quero uma query que ao buscar me diga que existem 2 resultados para o valor 15, tipo usando WHERE idade LIKE '%15%', mas esse codigo me diria '1 resultado'. Eu quero que ele me diga '2 resultados' em uma unica query.. qual seria a forma ideal para que eu possa fazer isso acontecer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi direito mas não seria:

 

$sql = mysql_query("SELECT * FROM TABELA WHERE idade LIKE '%15%'");

$num = mysql_num_rows($sql); // retorna o número de linhas localizadas

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, pois isso me retornaria o valor 1, pois ele afetou apenas uma linha, mas na verdade existem 2 resultados.

Note que o valor da coluna é 15;20;15

ele localizou o valor 15 ali e indicou como uma linha afetada. Mas eu quero que me retorne o valor 2, pois na verdade existem 2 registros que suprem o LIKE '%15%' nesta linha, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quiser fazer o teste:

procure: idade LIKE '%15%', o resultado será que 1 linha foi afetada. Mas na verdade o trecho '15' aparece duas vezes na linha, e eu gostaria de saber como retirar um resultado que informasse que apareceu 2 vezes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o correto seria por uma idade para cada linha! mas...

fiz uma bagunça aki ashfuahfushfuas mas acho que funfa:

 

$idade = 15;

$separador = ';';

$controle = 0;

$sql = mysql_query("SELECT idade FROM idade WHERE idade LIKE '%".$idade."%'");

while($res = mysql_fetch_array($sql)){

$i = explode($separador, $res[0]);

$num = count($i);

for($n = 0; $n <= $num; $n++){

if($i[$n] == $idade){ $controle++; }

}

}

echo $controle;

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahh garotoo!!

vlw, isso mesmo!

agora só falta implantar no meu sistema de busca..

abraço

 

teria outra solução tb, direta pelo mysql, consegui resolver agora hehe

 

select sum(if(idade like '15;%', 1,0) + if(idade like '%;15;%', 1, 0) + if(idade like '%;15', 1, 0)) as Sum from test;

 

retornaria Sum = ao valor q eu quero q eh o mesmo de $controle

:)

mto grato cara, vlw!

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.