Ir para conteúdo
Omar~

Query para valores duplicados

Recommended Posts

Opa!

Então.... como eu faria uma query que me retornasse apenas colunas cujo seu valor seja duplicado estou meio confuso como proceder?

Digamos uma query para exemplificar melhor:

SELECT * FROM tabela

E teria um resultado assim:

$resultado = [
    0 => [
        'id' => 1,
        'repetido' => 'abcde'
    ],
    1 => [
        'id' => 2,
        'repetido' => 'aaaaa'
    ],
    2 => [
        'id' => 3,
        'repetido' => 'abcde'
    ],
    3 => [
        'id' => 4,
        'repetido' => 'bbbbb'
    ],
];

Então no índice 0 e no índice 2 tenho a coluna com o valor repetido.

Como eu poderia esta fazendo a query de forma que me retornasse somente os resultados que são repetidos?

Lembrando que não indicarei o valor de busca, pois foi isso que me pegou e não estou sabendo como proceder... 

 

Até onde eu sei usei a lógica e não deu certo:

SELECT
  id,
  repetido
FROM
  tabela
GROUP BY
  repetido
HAVING COUNT(repetido) > 1

Pois dessa forma só me retorna o último índice repetido e eu preciso de todos que forem repetidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi um IN resolve

 

SELECT
  id,
  repetido
FROM
  tabela
where repetido in (SELECT repetido
                   FROM tabela
                   GROUP BY repetido
                   HAVING COUNT(repetido) > 1)


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew! Obrigado mesmo @Motta 

Deu certinho, havia me esquecido que também poderia está usando uma clausula.

 

Tive recorrer a truques de manipulação de array no php para tal afim, já que com a query não estava obtendo o resultado desejado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por antonio_milat
      Meu listener está sendo chamado duas vezes, mas o evento só é disparado uma vez.
      Eu copiei a base do código da documentação do Lumen 5.7 e aparentemente está tudo configurado corretamente. Não consigo encontrar o problema.
       
      bootstrap/app.php
      $app->register(App\Providers\EventServiceProvider::class);  
      app/Providers/EventServiceProvider.php
      protected $listen = [ 'App\Events\NewAuthEvent' => [ 'App\Listeners\SendNewAuthListener', ], ];  
      app/Events/NewAuthEvent.php
      use Illuminate\Queue\SerializesModels; use App\Data\Entity\User; use App\Data\Entity\Authorization; use Illuminate\Support\Facades\Log; class NewAuthEvent { use SerializesModels; public $user; public $auth; public function __construct(User $user, Authorization $auth) { Log::debug("Disparado uma vez"); $this->user = $user; $this->auth = $auth; } }  
      app/Listeners/SendNewAuthListener.php
      use App\Events\NewAuthEvent; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use App\Data\Service\MessengerService; use Illuminate\Support\Facades\Log; class SendNewAuthListener { private $messenger; public function __construct(MessengerService $messenger) { Log::debug("Chamado duas vezes"); $this->messenger = $messenger; } public function handle(NewAuthEvent $event) { Log::debug("Chamado duas vezes também"); $this->messenger->new($event->user, $event->auth); } }  
      Disparando o evento:
      event(new NewAuthEvent($objUser, $objAuthorization)); Estou me esquecendo de algum parâmetro ou configuração? Agradeço desde já!
    • Por Nauticonews Cnc
      Pessoal to mexendo nesse codigo pra simular parcelas de um valor mais quando a pessoa coloca exemplo: 10 x, ele mostra 10 resultados, eu queria que ele mostrasse apenas um resultado
       
      Exmplo como está:
      Total R$  1.000,00
      Condição de pagamento:  Parcelado
      Parcelar em  5
      Resultado:  200.00    200.00   200.00  200.00   200.00
       
      Eu queria que ficasse assim:
      Total R$  1.000,00
      Condição de pagamento:  Parcelado
      Parcelar em  5
      Resultado:  200.00  
       
       
       
      segue o codigo
       
       
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <Script>
      //Funcao para atualizar as parcelas e seus valores
       function atualizaValores(){
        // pegando a quantidade de parcelas
         var valor=$("#n-parcelas").val();
        //variavel que recebe os inputs(HTML)
         var geraInputs="";
        //Calculando o valor de cada parcela
         var valorParcela=parseFloat($(".total").val()/valor).toFixed(2);
       
        //gerando os inputs com os valores de cada parcela
         for(var i=0; i<valor;i++){
         geraInputs+="<td> <input width='100' type='text' name='parcela[]' value='"+valorParcela+"'> </td>";
         }
          // inserindo as parcelas
          $("#parcelas").html(geraInputs);
         }
      $(document).ready(function(e) {
          $(".total").on('change keyup keydown keypress',function(){
          // ao alterar o valor total, chama a funcao para alterar as parcelas
          atualizaValores();
       
        });
          $('#condicao-pag').on('change', 'select', function() {
        // ao alterar a condicao de pagamento,chama a funcao para alterar as parcelas
        atualizaValores();
              if($(this).val() == 1){
                  $('#parcelamento').show();
                  /*Calcular valor das parcelas (2x, 3x, 4x) e preencher inputs*/
                  $('#parcelas').show();
              }
              else{
                  $('#parcelamento').hide();
                  $('#parcelas').hide();
                  $("input[name='parcela[]']").val('');
              }
          })
                
          $('#n-parcelas').on('change', function() {
              /*Calcular valor das parcelas (2x, 3x, 4x) e preencher inputs*/
       //Ao alterar a quantidade e parcelas chama a funcao para alterar as parcelas
        atualizaValores();
          });
          
       
       
          });
       
      </SCRIPT>
      <table width="400">
      <tbody>
      <tr>
          <td width="200"><label>Total R$</label></td>
          <td width="100"><input type="text" min="0" class="total" value="1000" /></td>
      </tr>
      <tr name="condicao-pag" id="condicao-pag">
          <td width="200"><label>Condição de pagamento:</label></td>
          <td width="100">
             <select>
                      <option value=0>Simular</option>
                      <option value=1>Quantidade de Parcelas</option>
           
                  </select>
          </td>
      </tr>
      <tr id="parcelamento" style="display:none">
          <td width="200">Parcelar em</td>
          <td><input id="n-parcelas" type="text" min="0" class="total" value="" />
          </td>
      </tr>
      <tr >
      <td width="200">&nbsp;</td>
        <td width="100" id="parcelas" style="display:none"></td>
      </tr>
      </tbody>
      </table>
      </body>
    • Por tngcunha
      Preciso receber o dado escolhido para cada usuario, porém recebo os 3 dados para os 3 usuarios, como posso fazer para o usuario 1 receber um valor, o 3 outro valor e o 4 o ultimo valor??? Codigo para melhor entendimento :
       
      pagina 1 :
      while($row = mysqli_fetch_array($resultado)){ ?> <tr> <td align="center"><?php echo $row['cod_aluno'] ?></td> <td><?php echo $row['nome'] ?></td> <td><?php echo $row['email'] ?></td> <td align="center"><?php echo $row['presencas'] ?></td> <td align="center"><?php echo $row['faltas'] ?></td> <td> <input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>"> 1<input type="checkbox" name="presenca[]" value="1"> 2<input type="checkbox" name="presenca[]" value="2"> 3<input type="checkbox" name="presenca[]" value="3"> 4<input type="checkbox" name="presenca[]" value="4"> </td> </tr> while($row = mysqli_fetch_array($resultado)){ ?> <tr> <td align="center"><?php echo $row['cod_aluno'] ?></td> <td><?php echo $row['nome'] ?></td> <td><?php echo $row['email'] ?></td> <td align="center"><?php echo $row['presencas'] ?></td> <td align="center"><?php echo $row['faltas'] ?></td> <td> <input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>"> 1<input type="checkbox" name="presenca[]" value="1"> 2<input type="checkbox" name="presenca[]" value="2"> 3<input type="checkbox" name="presenca[]" value="3"> 4<input type="checkbox" name="presenca[]" value="4"> </td> </tr> pagina 2 :
      $turma = $_SESSION["turma"]; $query = "SELECT * FROM aluno where id_professor = '{$_SESSION['id_professor']}' and cod_turma ='$turma' "; $resultado = mysqli_query($conexao, $query); $num = 0; while($row = mysqli_fetch_array($resultado)){ echo $row['cod_aluno']; echo "<br>"; foreach($_POST['presenca'] as $linha){ echo 'Usuario deu check em:' . $linha; echo"<br>"; }} resultado :
      1 Usuario deu check em:2 Usuario deu check em:3 Usuario deu check em:1 3 Usuario deu check em:2 Usuario deu check em:3 Usuario deu check em:1 4 Usuario deu check em:2 Usuario deu check em:3 Usuario deu check em:1 ; OBS : 1 3 e 4 são os usuarios.
      OBS2 : Com o while fechando antes do foreach o resultado é o seguinte :
      1 3 4 Usuario deu check em:2 Usuario deu check em:3 Usuario deu check em:1 Agradeço desde já.
    • Por Kayo21
      Ola o meu Join esta Retornando Valores Duplicados e que não existem!
       
      Executo a seguinte Query:
      SELECT distinct a.id, a.nome,a.turma, f.id_freq, f.id_aluno, f.id_turma, f.pt FROM frequencia as f INNER JOIN aluno as a on f.id_turma = a.turma E vem esse Resultado: OBS: Sem a Coluna "PT" vem certo sem duplicação! Select:
      http://imgur.com/mbSU62E
       
      Tabela Frequencia
      http://imgur.com/mbSU62E  
      Obrigadooo!
    • Por andreval
      Ola pessoal
       
      quando faço a pesquisa de 1 palavra tudo fica certo
      se fizer de duas ou mais, ele repete de acordo com o
      numero de palavras pesquisadas, seque codgio
       
      exemplo de resultado com duas palavras
      39 | 244 | RECURSOS HUMANOS | IRPF | 2016-04-10 | 2016-04-30 | 2016-04-19 | certidão de casamento | 8f75fd02b40c418cb259a93a7c9b9a29.jpg | ARQUIVADO / DIGITALIZADO | 2016-04-10 22:25:55 | INSITE CONSULTORIA | ADM39 | 244 | RECURSOS HUMANOS | IRPF | 2016-04-10 | 2016-04-30 | 2016-04-19 | certidão de casamento | 8f75fd02b40c418cb259a93a7c9b9a29.jpg | ARQUIVADO / DIGITALIZADO | 2016-04-10 22:25:55 | INSITE CONSULTORIA | ADM
       
      codigo da consulta:
      //rotina de busca
      $busca = @$_REQUEST["busca"]; if ($busca<>"") { $palavra = explode(" ", $busca); $totalPalavras = count($palavra); for($i = 0; $i < $totalPalavras; $i++){ $consultaUsuario = @$consultaUsuario." OR $campoBusca like '%".$palavra[$i]."%'"; } }else{ $consultaUsuario = "OR $campoBusca like '%".$busca."%'"; } $buscaUsuario = "WHERE 1=1 ".$consultaUsuario; echo $buscaUsuario; $SQL = mysql_query("SELECT * FROM $tabela $buscaUsuario ORDER BY $tabela.$campoId DESC LIMIT $inicio,$limite") OR DIE(mysql_error()); //sql da paginação $consulta = mysql_query("SELECT * FROM $tabela $buscaUsuario") OR DIE(mysql_error()); //rotina de contagem de paginas $total_registros = mysql_num_rows($consulta); $total_paginas = Ceil($total_registros / $limite); ?> codigo da mostra do resuldado: <?php while($RF = mysql_fetch_array($SQL)){ ?> <form method="post" action="<?php echo $arquivoadd?>"> <tr> <td><?php echo $RF["hstId"];?></td> <td><?php echo date('d/m/y', strtotime($RF["hstData"]));?></td> <td><?php echo $RF["hstAcao"];?></td> <td><?php echo $RF["hstTabela"];?></td> <td><?php if($busca == ""){ echo $RF["hstBusca"]; } else { $pesquisa = explode(" ", $busca); for ($i = 0; $i < count($pesquisa); $i++) { $resposta = str_ireplace(trim($pesquisa[$i]), trim("<span style='background-color:#FFFF00'><b>$pesquisa[$i]</b></span>"), $RF["hstBusca"]); echo $resposta; } } ?> </td> </tr> </form> <?php } ?> GRATO
×

Informação importante

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