Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda em alguns selects


ReNan_BM

Pergunta

Amigo, preciso de ajuda...

tem que realizar os seguintes selects mais não sei como

preciso fazer uma busca em um campo qualquer e trazer o resultado ao contrario EX: se esta RENAN o select tem que trazer NANER

buscar por nome composto EX RENAN MIGUEL (2 palavras)

e um select que limite o numero de caracteres... EX no banco esta RENAN quero que traga 2 caracteres RE ou 3 REN ou 4 RENA

Desde já obrigado!!!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

você deve usar o like, você consegue resolver o dois primeiros selects ...

SELECT * FROM nome_tbl WHERE campo LIKE "%RENAN%"
// o like pega um pedaço da palavra e mostra pra você o resultado. No caso do último select, você também pode usar o like ... mas para buscar por nome composto, se no seu banco tiver RENAN MIGUEL é só usar ..
SELECT * FROM nome_tbl WHERE campo = "RENAN MIGUEL"

Link para o comentário
Compartilhar em outros sites

  • 0
você deve usar o like, você consegue resolver o dois primeiros selects ...

SELECT * FROM nome_tbl WHERE campo LIKE "%RENAN%"
// o like pega um pedaço da palavra e mostra pra você o resultado. No caso do último select, você também pode usar o like ... mas para buscar por nome composto, se no seu banco tiver RENAN MIGUEL é só usar ..
SELECT * FROM nome_tbl WHERE campo = "RENAN MIGUEL"

você não entendeu...

renan é so exemplo

1º select --> qro trazer os registros ao contrario... escrito de traz para frente

2º select --> buscar por campo com mais de 1 palavra, não as palavras em si... buscar por nome "renan lala" ou "abc dds"

3º select --> limitar caractares, quero que traga o resultado so das 4, ou 3 letras iniciais...

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'ReNan_BM'

Vamos resolver por partes.

1º - preciso fazer uma busca em um campo qualquer e trazer o resultado ao contrario EX: se esta RENAN o select tem que trazer NANER
Este é um caso que vai exigir que você use um pouco de programação criando uma UDF (função definida pelo usuário).

Fiz um exemplo e espero que sirva

DELIMITER $$;

DROP FUNCTION IF EXISTS `sase`.`Inverte_nome`$$

CREATE FUNCTION `sase`.`Inverte_nome` (nome char(100))
    RETURNS char(100) 
BEGIN
   declare x integer default 1;
   declare nome_invertido char(100) default "";
   Set x = length(nome);
   while x > 0 do
      set nome_invertido = concat(nome_invertido, substring(nome, x, 1));
      set x = x - 1;
   end while;
   return (nome_invertido);
END$$

DELIMITER;$$
para usar basta mencionar a função no select.exemplo
SELECT Inverte_nome('RENAN')
O retorno será 'NANER'
2º - buscar por nome composto EX RENAN MIGUEL (2 palavras)
esta resposta tem duas opções. A primeira usa o LIKE como já foi dito nos posts anteriores. a segunda usa um índice FULLTEXT cujo exemplo está no tópico: Sistema de busca, buscar por todas as palavras... do 'cassianooliver'
3º - e um select que limite o numero de caracteres... EX no banco esta RENAN quero que traga 2 caracteres RE ou 3 REN ou 4 RENA
Aqui você pode usar a função substring para retornea a quantidade de caracteres que você desejar. Exemplo
SELECT SUBSTRING('RENAN', 1, 2)

O retorno será 'RE'

esta função está buscando 2 caracteres a partir da posição 1.

Pode ser usado um campo no lugar da string 'RENAN'. para trezer REN use 3 no lugar de 2 e assim, vai.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...