Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Good

Select order by titulo

Recommended Posts

Utilizei a query a seguir:

SELECT * FROM capitulos WHERE fid = '10' ORDER BY titulo ASC

E os resultados foram:

 

Capítulo 08
Capítulo 09
Capítulo 10
Capítulo 100
Capítulo 101
Capítulo 102
Capítulo 103
Capítulo 11
Capítulo 110
Capítulo 111
Capítulo 112
Capítulo 113
Capítulo 12
Capítulo 120
Capítulo 121
Capítulo 122
Capítulo 123

 

 

Como fazer pra ficarem ordenados corretamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este campo é uma string e é desta forma que o MySQL ordena uma string.

 

Você pode colocar um campo inteiro contendo apenas os números dos capítulos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) crie uma coluna para marcar a ordenação

 

ou

 

 

2) ordene pela posição numerica, trunque , converta para numbero

 

 

cast(trim(substr(titulo,10,3)) as number)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como ordenar normalmente? Pq esses dados vem de outro lugar, e são todos gravados aleatoriamente.. E isso foi só um exemplo, nem todos vem com o nome capítulo (pode vir título, episódio, seção), mas todos tem uma numeração no final..

 

Então, com php posso tentar extrair apenas o número e gravar num array.. depois disso, coloco pra reordenar pela numeração.. Mas não tenho ideia de como extrair o número, pois ele pode vir no meio, final ou início.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pesquise sobre expressões regulares

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nem precisou.. achei uma solução bem fácil e bizarra kkk, olha:

SELECT * FROM capitulos WHERE fid = '10' ORDER BY titulo+00 ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.