Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

batistavn15

[Resolvido] Cortar String

Mensagens Recomendadas

batistavn15

Boas pessoa, estou com uma dúvida, eu através de uma query devolvo um resultado por exemplo:

aaa/u/ppp

c/ttttttttttt/k

E queria que apenas me devolve-se o que está entre as barras, ou seja:

u

ttttttttttt

É possivel realizar algo do género?

Obrigado, Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Boas,

já não mexo em mysql ha algum tempo, mas poderá ser algo assim

SELECT substring_index(substr(CAMPO, instr(CAMPO , '/')+1), '/', 1) FROM TABELA where CAMPO regexp '/.*/'

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
batistavn15

Boas,

já não mexo em mysql ha algum tempo, mas poderá ser algo assim

SELECT substring_index(substr(CAMPO, instr(CAMPO , '/')+1), '/', 1) FROM TABELA where CAMPO regexp '/.*/'

Muito obrigado, era mesmo isto ;):thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
batistavn15

Muito obrigado, era mesmo isto ;):thumbsup:

Uma ultima questão: Depois de resolver isto deparei-me com uma situação, visto eu de seguida irei realizar uma conta, e vamos supor:

aaa/iii/pp -> 33

fff/iii/q -> 12

Quando faço o agrupar ele aparece 2 vezes "iii" devido a ter referencias diferentes para tras e para a frente, seria possivel agrupar quando se têm a mesma palavra no meio?

Aqui deixo o código de como está até agora:

SELECT DISTINCT(substring_index(substr(direccao_area_dominio, instr(direccao_area_dominio , '/')+1), '/', 1)) as dominios,
COUNT(DISTINCT(id)) as conta
FROM pedidos WHERE direccao_area_dominio REGEXP '/.*/'
GROUP BY direccao_area_dominio

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Assim?

SELECT substring_index(substr(direccao_area_dominio, instr(direccao_area_dominio, '/')+1), '/', 1) as dominios, count(*) as conta FROM pedidos WHERE direccao_area_dominio REGEXP '/.*/' group by dominios

Editado por nelsonr

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
batistavn15

Assim?

SELECT substring_index(substr(direccao_area_dominio, instr(direccao_area_dominio, '/')+1), '/', 1) as dominios, count(*) as conta FROM pedidos WHERE direccao_area_dominio REGEXP '/.*/' group by dominios

Sim, isso é o código como tenho, o problema é como expliquei em cima, aparecem 2 "iii", o que deveria aparecer 1 "iii" -> 45

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

esse codigo, com esta informacao:

aaa/iii/bbb

ccc/iii/ddd

eee/zzz/yyy

Mostra algo assim:

iii 2

zzz 1

Era suposto mostrar o que?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
batistavn15

esse codigo, com esta informacao:

aaa/iii/bbb

ccc/iii/ddd

eee/zzz/yyy

Mostra algo assim:

iii 2

zzz 1

Era suposto mostrar o que?

Sorry, erro e distração minha. Já está, obrigado ;)

Editado por batistavn15

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.