parkyns Postado Fevereiro 21, 2011 Denunciar Share Postado Fevereiro 21, 2011 (editado) 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 Fevereiro 21, 2011 por parkyns Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcosfj1 Postado Fevereiro 21, 2011 Denunciar Share Postado Fevereiro 21, 2011 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 fazerSELECT * FROM tabela WHERE genero = 'Documentario';Acho q é apenas isso Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 parkyns Postado Fevereiro 22, 2011 Autor Denunciar Share Postado Fevereiro 22, 2011 Cara se Genero for uma coluna, basta fazerSELECT * FROM tabela WHERE genero = 'Documentario';Acho q é apenas issoNão, marcos, Gênero não é uma coluna. Existe uma coluna chamada "post" e nela fica armazenado um texto enorme, conforme o exemplo que passei acima. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 parkyns Postado Fevereiro 22, 2011 Autor Denunciar Share Postado Fevereiro 22, 2011 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 23, 2011 Denunciar Share Postado Fevereiro 23, 2011 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 parkyns Postado Fevereiro 23, 2011 Autor Denunciar Share Postado Fevereiro 23, 2011 '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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 23, 2011 Denunciar Share Postado Fevereiro 23, 2011 '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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
parkyns
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
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 parkynsLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.