Good 4 Denunciar post Postado Agosto 5, 2015 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
lokaodomau 61 Denunciar post Postado Agosto 5, 2015 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
Motta 645 Denunciar post Postado Agosto 5, 2015 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
Good 4 Denunciar post Postado Agosto 6, 2015 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
Fernando C 128 Denunciar post Postado Agosto 7, 2015 pesquise sobre expressões regulares Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 7, 2015 .. ou seja pela function REGEXP obtenha a parte numérica e ordene por ela. Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Agosto 7, 2015 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