URGENTE !!!consulta em mysql mostrando o último registro  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
spierPJ
JavaTeenager
[Avatar]

Membro desde: 14/11/2003 00:00:00
Mensagens: 193
Offline

Olá,

Em MySQL, para se conseguir um regitro aleatório:

ResultSet noticia = stat.executeQuery( "select * from noticias order by rand() limit 1");

Para se conseguir o último registro *

ResultSet noticia = stat.executeQuery( "select * from noticias order by nome desc limit 1");


e para obtermos o primeiro *

ResultSet noticia = stat.executeQuery( "select * from noticias order by nome limit 1");

* (lembrem-se que em sql é considerado uma heresia os termos primeiro e último: não há ordem estabelecida para registros; existe isto sim uma ordem de valores de determinada(s) colunas, daí a cláusula 'order by')

Dependendo da necessidade, é claro, não faz sentido nenhum tratarmos um resultset com TODOS registros para pinçarmos apenas um. Mesmo as 3 consultas acima somadas deverão ser mais rápidas que uma que traga todos registros, sem falar no "consumo" de memória.

Por mais engenhosas que sejam soluções em java (ou quaisquer outras linguagens) a maneira mais rápida de se proceder a "filtros" em bancos de dados sempre será via o prório SGBD!
[WWW] [ICQ]
ClandestinoPJ
JavaChild
[Avatar]

Membro desde: 18/08/2004 00:00:00
Mensagens: 106
Offline

Pooo .. claro .. eu concordo plenamente com o que vc falou spier ..

A primeira coisa que eu perguntei foi:

Você quer saber como fica o SQL ou o código JSP para tratar o ResultSet ?

[]s


como ele não respondeu eu tive que fazer uma escolha .. mas sim .. o processamento da seleção é muito mais eficiente deixando o mesmo por conta do SGBD ... não tenha dúvida ..

[]s
[WWW] [ICQ]
riqueneilPJ
Java Ninja
[Avatar]

Membro desde: 24/07/2004 00:00:00
Mensagens: 280
Localização: 150016826
Offline

Olá!
3º forma de se fazer isso de 394820394, segundo nosso amigo Clandestino...
ResultSet rs = stmt.executeQuery("LAST_INSERT_ID()");
Essa função é tratando-se de MySQL, ela retorna o último indice inserido no banco de dados...
Isso é bom no caso de vc criar inserir um indice e no mesmo instante querer saber o valor gerado...
Pelo menos eu consigo enxergar assim essa sua dúvida, não sei se resolveria

[]'s

http://
[WWW] aim icon [ICQ]
codevisionPJ
Debugger
[Avatar]

Membro desde: 04/07/2004 00:00:00
Mensagens: 52
Offline

Cara as dicas q vcs me deram foram de muita imprtância para eu resolver o meu problema.

MAs agora eu queria saber como faço para exbir no lugar do último registro cadastrado, quero q ele exiba os dois últimos por exemplo.

tem como ????

Valeu
[WWW] [ICQ]
codevisionPJ
Debugger
[Avatar]

Membro desde: 04/07/2004 00:00:00
Mensagens: 52
Offline

Cara esses exemplos foram muito legais, respondendo ao clandestino, preferia que fosse no sql, pois como o próprio spier disse é bem mais rápido e consome, menas memória e código.

e na instrução mysql tem como eu filtrar apenas os dois últimos ou o 3 últimos ???

esse é para peguar dois registros mas o valor é randômico, como faço para pegar os dois últimos ???

select * from promocoes order by rand() limit 2

valeu
[WWW] [ICQ]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team