Ir para conteúdo

POWERED BY:

Arquivado

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

nano_b

Comparar valores de uma busca mysql

Recommended Posts

Pessoal, preciso pegar valores de uma coluna da tabela e comparar entre eles, pra saber se existe algum repetido. Já tentei fazer isso com array_unique(), mas não consegui nenhum resultado. Vou exemplificar pra se tornar mais facil. Tenho uma coluna chamada VALOR. Nela tem os seguintes valores: [1 2 3 4 4]. Bom, o 4 está repetido. To tentando fazer um script que reconheça que há um valor repetido. Alguém tem alguma ideia de como fazer?

 

 

Muito obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o banco já faz isso

agrupando por valor e colocando em qtde a quantidade de vezes que foi repetido

  select count(*) as qtde, `valor` from `tabela` group by `valor`  

 

entendi mais ou menos o que você quer,

se não for isso explica melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer uma função que te retorna verdadeiro se o array possuir valores únicos e falso se possuir valores repetidos

<?php

function is_unique( array $values )
{
$result = true;
array_walk( array_count_values( $values ), 
	function( $value ) use ( &$result )
	{ 
		if( $value > 1 ) 
			$result = false;
	} );
return $result;
}


$values = array( 1, 2, 3, 4, 5, 6, 3, 1 );

var_dump( is_unique( $values ) );

// boolean false


$values = array( 1, 2, 3, 4, 5, 6, 7, 8 );

var_dump( is_unique( $values ) );

// boolean true

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Victor... é mais ou menos isso, mas não consegui aplicar teu código...

 

Carlos Coelho... é isso que eu preciso, mas também não consegui aplicar teu código... abaixo segue o meu script:

 

$consulta1 = mysql_query ("SELECT * FROM cat_codigo WHERE id = '".$id."'");		//seleciona todos os dados da tabela do código
$dados = mysql_fetch_assoc ($consulta1);
$id_peca = $dados ['id_peca'];

$consulta = mysql_query ("SELECT id_conjunto FROM cat_peca");		//seleciona todos os dados da tabela do código*/

 

A partir daí, preciso consultar se o "id_conjunto" aparece mais de uma vez nessa tabela...

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar explicar melhor...

 

Tenho uma tabela... digamos que eu tenha 3 campos nessa tabela:

 

id | campoA | campoB

 

Eu tenho dados nessa tabela:

 

id | campoA | campoB

1 | dado1 | x

2 | dado2 | y

3 | dado2 | z

...

 

Como se pode ver, o campoA possui dois valores iguais, que são dado2... Bom, eu preciso comparar todos os valores desse campo e saber se há alguma repetição:

dado1 > dado2 (comparando o dado1 com o dado2)

dado1 > dado2

dado2 > dado1

... (e assim por diante)

 

Se encontrar dados iguais (nesse caso vai encontrar dado2 = dado2), então deve me dizer que há dados iguais...

 

Simples...

 

Valleuuu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque todos os dados que você quer verificar se estão repetidos em um array e depois utilize a função que te passei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

com base nessa tabela acima

$query = "SELECT 
             IF( count(*) > 1 , 'sim', 'não')AS verifica, 
             GROUP_CONCAT( CONVERT( `id`, char ) SEPARATOR ';') AS id 
         FROM 
            `tabela` 
         GROUP BY 
            `campoA`";
$sql = mysql_query($query) or die(mysql_error());
echo "<table><tr><td>Duplicado</td><td>ID(s)</td></tr>";
while ($linha = mysql_fetch_assoc($sql)){
	echo "<tr><td>{$linha['verifica']}</td>";
	echo "<td>{$linha['id']}</td></tr>";	
}
echo "</table>";

qualquer dúvida na query leia no manual do mysql

IF()

CONVERT()

GROUP_CONCAT()

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.