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

Consultar texto entre duas strings


parkyns

Pergunta

Olá, pessoal,

Sou novo por aqui e estou com um problema. Já dei uma pesquisada, mas não encontrei solução.

Preciso recuperar uma substring que está no meio de uma string no banco. Vou exemplificar para ficar mais fácil de entender:

Em uma tabela tenho um campo com uma string do tipo

[info][bb]Gênero: [/bb]Documentario<br />

[bb]Diretor: [/bb]Josh Fox<br />

[bb]Duração: [/bb]103 minutos<br />

[bb]Ano de Lançamento: [/bb]2010<br />

[bb]País de Origem: [/bb]EUA<br />

[bb]Idioma do Áudio: [/bb]inglês<br />

Preciso pegar somente o Gênero, por exemplo, então, no exemplo acima, meu select tem que retornar somente a substring Documentário.

Alguém pode me ajudar?

Editado por parkyns
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Olá, pessoal,

Sou novo por aqui e estou com um problema. Já dei uma pesquisada, mas não encontrei solução.

Preciso recuperar uma substring que está no meio de uma string no banco. Vou exemplificar para ficar mais fácil de entender:

Em uma tabela tenho um campo com uma string do tipo

[info][bb]Gênero: [/bb]Documentario<br />

[bb]Diretor: [/bb]Josh Fox<br />

[bb]Duração: [/bb]103 minutos<br />

[bb]Ano de Lançamento: [/bb]2010<br />

[bb]País de Origem: [/bb]EUA<br />

[bb]Idioma do Áudio: [/bb]inglês<br />

Preciso pegar somente o Gênero, por exemplo, então, no exemplo acima, meu select tem que retornar somente a substring Documentário.

Alguém pode me ajudar?

Cara se Genero for uma coluna, basta fazer

SELECT * FROM tabela WHERE genero = 'Documentario';

Acho q é apenas isso

Link para o comentário
Compartilhar em outros sites

  • 0

Só pra facilitar o entendimento, preciso de algo tipo o select abaixo, que vai me retornar a substring contida entre os caracteres 23 e 46:

SELECT SUBSTRING(post, 23, 46)

FROM ibf_posts;

Só que em vez de informar a posição inicial (23) e a final (46) eu tenho que informar duas strings que eu sei que estão em todos os registros, tipo [bb]Gênero: [/bb] e <br />, então, se funcionasse dessa forma, o select abaixo:

SELECT SUBSTRING( post, '[bb]Gênero: [/bb]', '<br />' )

FROM ibf_posts;

me retornaria:

Documentário
Link para o comentário
Compartilhar em outros sites

  • 0
Olá, pessoal,

Sou novo por aqui e estou com um problema. Já dei uma pesquisada, mas não encontrei solução.

Preciso recuperar uma substring que está no meio de uma string no banco. Vou exemplificar para ficar mais fácil de entender:

Em uma tabela tenho um campo com uma string do tipo

[info][bb]Gênero: [/bb]Documentario<br />

[bb]Diretor: [/bb]Josh Fox<br />

[bb]Duração: [/bb]103 minutos<br />

[bb]Ano de Lançamento: [/bb]2010<br />

[bb]País de Origem: [/bb]EUA<br />

[bb]Idioma do Áudio: [/bb]inglês<br />

Preciso pegar somente o Gênero, por exemplo, então, no exemplo acima, meu select tem que retornar somente a substring Documentário.

'parkyns' ,

Desculpe a demora e a franqueza na resposta.

A forma como esta tabela foi montada indica que ela foge a qualquer padrão de organização de banco de dados. Este campo string de tipo texto está guardando uma tabela dentro de outra.

As pesquisas deste tipo serão extremamente lentas, fazendo uma varredura completa a cada vez que for executada.

A solução é complicada, pois necessitaria de programação.

Sugiro que você normalize o banco criando uma nova tabela que guardará, de forma correta, os registros deste campo.

Link para o comentário
Compartilhar em outros sites

  • 0
'parkyns' ,

Desculpe a demora e a franqueza na resposta.

A forma como esta tabela foi montada indica que ela foge a qualquer padrão de organização de banco de dados. Este campo string de tipo texto está guardando uma tabela dentro de outra.

As pesquisas deste tipo serão extremamente lentas, fazendo uma varredura completa a cada vez que for executada.

A solução é complicada, pois necessitaria de programação.

Sugiro que você normalize o banco criando uma nova tabela que guardará, de forma correta, os registros deste campo.

Olá, Denis, obrigado pela resposta.

Na realidade a tabela não foge do padrão. O banco no qual estou querendo fazer essa consulta é o banco de um fórum IPB exatamente igual a esse usado aqui na scriptbrasil e o campo em questão (post) é o mesmo campo, da mesma tabela onde fica armazenado o que estamos escrevendo aqui agora. Se trata de um campo VARCHAR.

A especificidade do banco que tenho em mãos é que se trata de um fórum de cinema e alguns posts (na realidade o tópico principal) é criado baseado em bbcodes que fazem com que, ao ser visualizado no fórum, o post apresente uma formatação pré-definida. Por isso você vê ali a formatação que coloquei no primeiro post. O que está entre "[" e "]" é bbcode que o fórum transforma em html na hora de exibir o post.

Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
'parkyns' ,

Desculpe a demora e a franqueza na resposta.

A forma como esta tabela foi montada indica que ela foge a qualquer padrão de organização de banco de dados. Este campo string de tipo texto está guardando uma tabela dentro de outra.

As pesquisas deste tipo serão extremamente lentas, fazendo uma varredura completa a cada vez que for executada.

A solução é complicada, pois necessitaria de programação.

Sugiro que você normalize o banco criando uma nova tabela que guardará, de forma correta, os registros deste campo.

Olá, Denis, obrigado pela resposta.

Na realidade a tabela não foge do padrão. O banco no qual estou querendo fazer essa consulta é o banco de um fórum IPB exatamente igual a esse usado aqui na scriptbrasil e o campo em questão (post) é o mesmo campo, da mesma tabela onde fica armazenado o que estamos escrevendo aqui agora. Se trata de um campo VARCHAR.

A especificidade do banco que tenho em mãos é que se trata de um fórum de cinema e alguns posts (na realidade o tópico principal) é criado baseado em bbcodes que fazem com que, ao ser visualizado no fórum, o post apresente uma formatação pré-definida. Por isso você vê ali a formatação que coloquei no primeiro post. O que está entre "[" e "]" é bbcode que o fórum transforma em html na hora de exibir o post.

Um abraço.

Leia sobre índices do tipo full-text. Talvez seja uma saída.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

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