Marciu 0 Denunciar post Postado Janeiro 22, 2009 Boa noite a todos! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Andei procurando no fórum e não encontrei uma solução... Não sei se é possível, em uma consulta no mysql, procurando pelo id, que me retornassem além do registro onde está o id, uma tupla acima e uma abaixo, ou seja, pela ordem crescente do id o registro com o menor e maior id daquele em que procuro. Tipo: SELECT * FROM tabela WHERE idTabela = 12; //mas queria que me retornasse o registro anterior, por exemplo o registro 10, já que o 11 foi excluído, e o registro 13. Se pudesse ainda parametrizar quantas linhas antes e depois, seria melhor ainda, tipo 5 registros antes e 5 registros depois do ID do registro a retornar no select. Só para dizer para que isso, é que estou tentando fazer um Carrossel de imagens, sendo na página web a ser requisitada eu retorne a imagem de frente do carrossel e as laterais em sequência crescente. Ufa, espero que soube passar minha dúvida. Grato a todos!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Tash 5 Denunciar post Postado Janeiro 22, 2009 5 registros pra cima, 5 pra baixo e um no meio, totalizando 11: SELECT * FROM tabela WHERE idTabela >= 12 LIMIT 6 UNION SELECT * FROM tabela WHERE idTabela < 12 LIMIT 5 7 registros pra cima, 7 pra baixo e um no meio, totalizando 15: SELECT * FROM tabela WHERE idTabela >= 12 LIMIT 8 UNION SELECT * FROM tabela WHERE idTabela < 12 LIMIT 7 Os acima, no entanto, teriam resultado imprevisto quando o 12 fosse excluído... Abaixo, funcionariam mesmo se o 12 foi excluído, mas a performance cai ligeiramente: SELECT * FROM tabela WHERE idTabela > 12 LIMIT 5 UNION SELECT * FROM tabela WHERE idTabela = 12 LIMIT 1 UNION SELECT * FROM tabela WHERE idTabela < 12 LIMIT 5 SELECT * FROM tabela WHERE idTabela > 12 LIMIT 7 UNION SELECT * FROM tabela WHERE idTabela = 12 LIMIT 1 UNION SELECT * FROM tabela WHERE idTabela < 12 LIMIT 7 Compartilhar este post Link para o post Compartilhar em outros sites
Marciu 0 Denunciar post Postado Janeiro 22, 2009 Tash, muitíssimo obrigado!! Só tive quer fazer um order by decrescente no primeiro SELECT, pois tava pegando os primeiros em ordem crescente. Valeu mesmo!!! Olha só como ficou meu bonito SELECT com sua ajuda: (SELECT * FROM photo WHERE idPhoto <= 12 ORDER BY idPhoto DESC LIMIT 6) UNION (SELECT * FROM photo WHERE idPhoto > 12 LIMIT 5) ORDER BY idPhoto http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites