Jump to content
Rui PG

Como selecionar apenas os registros que estão entre aspa

Recommended Posts

Boa tarde, Pessoal"

 

Sou iniciante em SQL, em uma tabela do nosso BD tempos um campo que possui o registro com as informações do paciente concatenado com uma serie de valores que não precisamos.

Como eu faço, para montar uma select para extrair desse registro apenas o que está entre aspas?

 

O meu registro está assim:

a:28:{i:18;s:13:"Sérgio silva";i:19;s:11:"1199900001";i:20;s:0:"n/i";i:21;s:0:"n/i";i:23;s:15:"Amil One Health";i:24;s:0:"n/i";i:27;s:0:"n/i";i:31;s:1:"2";i:32;s:0:"n/i";i:33;s:1:"2";i:34;s:0:;}

 

Eu preciso dele assim:

"Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2";

 

Observação, esses monte de valores a:28: ...etc... eles mudam, não são valores fixos, se fossem até usaria o replace, mas são vários valores.

 

Depois que eu chegar nessa mineração: "Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2";

Como eu faço para alocar cada valor em campo campo qualquer, pode ser uma tabela temporária, tipo assim:

 

|nome           |campo 1        |Campo 2 |Campo 3 |Campo 4               |Campo  5 | .....

|Sérgio silva|1199900001|n/i              |n/i              |Amil One Health|n/i               |n/i|2|n/i|2| .....

 

Muito obrigado amigos

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Thomeny
      Olá pessoal, sou novo no mundo da programação e banco de dados, quer dizer passei vários anos parado em outra área e agora resolvi voltar.
       
      Enfim estou precisando fazer o seguinte:
       
      Tenho dois campos que usa um select (irei colocar logo abaixo) para ambos.
      Esse select traz o resultado iguais para os dois, porém o cliente precisa fazer o seguinte:
       
      Para combobox 1 ao selecionar paciente, esse paciente não apareça no combobox dois porque já foi selecionado.
       
      Como procedo, se puderem ser claros, abaixo segue o select usado em ambos pra trazer a lista de pacientes...
       
      Select Distinct
        PC.PES_COD,
        PC.PES_NOME,
        PF.NASCIMENTO,
        PF.PFI_MAE,
        Concat(PC.PES_COD, ' - ', LTrim(RTrim(PC.PES_NOME)), ' - ', PF.NASCIMENTO, ' - ', LTrim(RTrim(PF.PFI_MAE))) As NOME
      From
        GER_PESSOA PC
        Inner Join
        GER_PESSOA_FISICA PF On (PC.PES_COD = PF.PES_COD)
      Order By
        PC.PES_NOME
    • By JurisCode
      OLÁ A TODOS, Boa tarde. Preciso de ajuda com o seguinte script.
       
      eu tenho uma array que é a seguinte:
       
      array (size=7)   0 => string 'gu' (length=2)   1 => string 'tr' (length=2)   2 => string 'fr' (length=2)   3 => string 'ip' (length=2)   4 => string 'al' (length=2)   5 => string 'po' (length=2)   6 => string 'xa' (length=2) Cada string da array de duas letra é a abreviatura de uma cidade; eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual a cidade correspondente. Como vai ser necessariamente um resultado apenas, eu tive que usar o foreach.
       
      Tipo
      foreach($array as $variavel);         {         $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'");         $resultado = $busca->fetch_assoc();         echo ' - '. $resultado['significado_da_sigla'];         } } Não está funcionando perfeitamente, mas imprime apenas o último resultado.
       
      Eu já tentei uma variável para ir acumulando o resultado, tipo
       
      if (empty('$resultado_busca')) {     $resultado_busca = $resultado['significado_da_sigla'];     }     else {     $resultado_busca = $resultado_busca . ' - ' . $resultado['significado_da_sigla'];     } ou seja, se a variável foi vazia (da primeira vez), então vai criar uma variável com o primeiro resultado, se a variável já existir (das outras vezes), então a variável vai ser igual à variavel anteriormente criado adicionando um traço e o próximo resultado.
       
      E depois, em vez de imprimir a variável com fetch_assoc $resultado['significado_da_sigla'] eu imprimiria a variável &resultado_busca, que em cada ciclo iria acumulando os resultados, mas também não está funcionando, essa não imprime nada na tela.
       
      Alguém pode dar uma ajuda?
       
      OBRIGADO, DESDE JÁ
    • By Akahs
      Caros Amigos, 
      Estou com uma dúvida que me atormenta tem uma semana e simplesmente travei por não conseguir resolver. 
      Tenho um site onde o cliente vai escolher, através de um formulário de registro, se ele vai necessitar ou não de um traslado até o evento. Caso ele escolha "Não", nada acontece. Caso ele escolha "Sim", eu quero que apareça o outro select com as opções de hotéis de onde ele vai se hospedar para pegar o traslado. Pois bem, eis meu código na parte de formulário:
       
      <div class="col-md-6"> <div class="form-group"> <select class="form-control" name="traslado" id="traslado"> <option value="">Necessita Traslado?*</option> <option value="Sim">Sim</option> <option value="Não">Não</option> </select> </div> </div> <div class="col-md-6" id="teste"> <div class="form-group" style="display:none;"> <select class="form-control" name="hotel" id="hotel"> <option value="0">Se Sim, escolha o Hotel de Origem*</option> <option value="SleepIn Jacarei">SleepIn Jacareí</option> <option value="Ibis Jacarei">Íbis Jacareí</option> <option value="Ibis SJC">Ibis SJC</option> <option value="Novotel SJC">Novotel SJC</option> </select> </div> </div>  
      Percebam que, ao responder "Sim" para a opção de "Traslado" eu quero que as opções de "Hoteis" apareçam juntamente com o outro grupo de select "form-control". 
      Pensei em duas formas de trabalhar:
      A primeira seria manipulando a div do "form-control" relativo aos hoteis, ela fica oculta e ao clicar em Sim em "Traslado" ela aparece. (Tentei fazer, sem sucesso.)
      A outra seria manipular o style "display:none", enfim, uma idéia que me ocorreu. 
       
      Fiz uns códigos em JavaScript porém nenhum funcionou, o que cheguei mais perto foi sumir o formulário todo.
      Se alguém puder dar alguma dica e/ou solução ficarei enormemente agradecido. 
      Att,

    • By JurisCode
      eu tenho uma array que é a seguinte:
      array (size=7)   0 => string 'gu' (length=2)   1 => string 'tr' (length=2)   2 => string 'fr' (length=2)   3 => string 'ip' (length=2)   4 => string 'al' (length=2)   5 => string 'po' (length=2)   6 => string 'xa' (length=2) eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual o significado correspondente. Como vai ser necessariamente um resultado apenas, não tem motivo para usar o while, mas fazer via foreach.
       
      Tipo
      foreach($array as $variavel); { $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'"); $resultado = $busca->fetch_assoc(); echo ' - '. $resultado['significado_da_sigla']; } }  
      Mas tá imprimindo só o último resultado.
    • By Pedro Batista Lopes
      Olá pessoal alguém pode me ajudar estou com uma duvida, espero que vocês consigam me ajudar,
      Faço uma busca no banco de dados com mysql, depois faço um laço de repetição foreach e pego os dados do banco e jogo em uma tabel, 
      gostaria de que um campo desse laço se repetisse varias vezes.
      No banco ele pegas as informações de nota fiscal, cliente,nome do cliente e a soma das notas por um período de tempo,
      gostaria que repetisse esse período, que no caso é um ano de janeiro a dezembro.
      segue o codigo.
      </form> <?php $dataIncio = $_POST['data-ini']; $dataFim = $_POST['data-fim']; $dataIncio = date('d/m/Y', strtotime($dataIncio)); $dataFim = date('d/m/Y', strtotime($dataFim)); $buscaNotas = $db->prepare("select a.empresa, a.cliente, b.nom_cliente, e.cod_uni_feder, d.cod_repres, b.cod_tip_cli, count(a.nota_fiscal) as QTD_MES from fat_nf_mestre a join clientes b on (b.cod_cliente = a.cliente) join fat_nf_item c on (c.empresa = a.empresa and c.trans_nota_fiscal = a.trans_nota_fiscal) join pedidos d on (d.cod_empresa = c.empresa and d.num_pedido = c.pedido) join cidades e on (e.cod_cidade = b.cod_cidade) where a.empresa = '10' and dat_hor_emissao between EXTEND(MDY(01,01,2019)) and EXTEND(MDY(01,30,2019)) // esse é o campo que gostaria que repetisse a data está ///01/01/2019 a 01/30/2019 gostaria de um jeito para mudar 01/02//2019 a 30/02/2019 assim por diante. and d.cod_tip_carteira = '1' --and b.nom_cliente = 'MAGAZINE LUIZA S/A' --and b.cod_cliente = '047960950075482' and c.seq_item_nf = '1' and a.sit_nota_fiscal <> 'C' group by 1,2,3,4,5,6"); $buscaNotas->execute(); $linha = $buscaNotas->fetchAll(PDO::FETCH_ASSOC); ?> <table border="1px solid black" class="table col-sm-12 table-striped table-hover"> <thead class="thead-dark "> <tr> <th>Empresa</th> <th>Cliente</th> <th>Nome do cliente</th> <th>Uni_Feder</th> <th>Codigo Representante</th> <th>Cod_tipo_cli</th> <th>janeiro</th>// aqui eu faria janeiro, feveiro, março, abril.....até dezembro <th>Fevereiro</th> </tr> </thead> <?php foreach ($linha as $listar) { ?> <tr> <td><?= $listar['empresa'];?></td> <td><?=$listar['cliente']; ?></td> <td><?=$listar['nom_cliente']; ?></td> <td><?=$listar['cod_uni_feder']; ?></td> <td><?=$listar['cod_repres']; ?></td> <td><?=$listar['cod_tip_cli']; ?></td> <td><?=$listar['qtd_mes']; ?></td> // aqui é a saida onde queria que saisse o restante dos dados. </tr> <?php } ?> </table> <?php   
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.