0cool 0 Denunciar post Postado Abril 24, 2011 Povo, tenho uma tabela no meu bd, aonde são colocados dados de alguns favoritos de uma série de livros, portanto o usuário pode favoritar 10 livros no site e depois pode ir até uma página aonde vão esta estes registro. Mas eu só preciso de 10 registro dos usuários, como eu posso fazer para que o sistema registre apenas os 10 últimos registros favoritados pelos usuários, quero fazer isso, pois só irei listar 10 favoritos por usuários e não queria que ficasse registros que não seriam exibidos. A questão é... eu tenho 10 registros... quando for colocar um novo o bd elimina o mais antigo e põe esse novo registro... e assim vai seguindo uma ordem que quando um novo for registrado o mais antigo registro seja eliminado. Acho que isso pode ser feito diretamente pelo BD, mas não faço idéia de como fazer. Quem puder me ajudar, valew! Att.: Caio. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 25, 2011 http://dev.mysql.com/doc/refman/5.0/en/limit-optimization.html Compartilhar este post Link para o post Compartilhar em outros sites
0cool 0 Denunciar post Postado Abril 26, 2011 Motta, obrigado pela ajuda, mais não entendi o artigo, parece ser algo simples, mais não consegui entender a lógica, tu ou alguém poderia me explicar simplificadamente como seria o funcionamento daquelas instruções? É Claro, se não for pedir demais. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 26, 2011 O LIMIT , limita o resultado. SELECT * FROM USUARIOS LIMIT 10 A questão que você tem parece ser um pouco mais complexa, publica a SQL que tem e talvez alguém possa ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
0cool 0 Denunciar post Postado Abril 26, 2011 Opa, em relação ao LIMIT eu já conhecia, na verdade é uma query simples que eu tenho, utilizando select from apenas e listando todos os resultados atualmente. A questão é na hora do insert, eu queria saber se nesse momento tem como fazer a substituição, ou seja... colocar um novo registro e apagar um antigo. Porém to achando que terei que fazer isso via code mesmo. Mas agradeço e fico no aguardo caso alguém tenha alguma solução via mysql sem uso de funções do code. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 26, 2011 A questão é na hora do insert, eu queria saber se nesse momento tem como fazer a substituição, ou seja... colocar um novo registro e apagar um antigo. Talvez via trigger isto possa ser feito. Compartilhar este post Link para o post Compartilhar em outros sites
marceloaltmann 0 Denunciar post Postado Maio 3, 2011 eu faria como o motta disse, faz uma trigger que antes de inserir valide a quantidade de registros para aquele usuario, caso tenha mais que 10 apague os antigos, o que você pode fazer tbm é tratar na aplicação, seria a mesma lógica da trigger. seria algo tipo assim: DELETE FROM posts WHERE id NOT IN(SELECT id FROM posts WHERE user=user_id ORDER BY id DESC LIMIT 9) AND user=user_id; Compartilhar este post Link para o post Compartilhar em outros sites