2008-11-24 42 views

Respuesta

15

¿La última fila tiene la identificación más alta? Si es así, creo que esto funcionaría:

SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE) 

MySQL permite las subselecciones en la versión actual, ¿verdad?

Sin embargo, en la mayoría de los casos, probablemente funcionaría mejor si seleccionó todas las filas y luego filtró los datos no deseados en su aplicación.

+0

MySQL 4.1 ha apoyado subconsultas durante más de cuatro años! Aunque es cierto que algunas empresas de alojamiento aún usan MySQL 4.0 que carece de esta característica. –

+0

Je, pensé que sí. Pero la última vez que usé MySQL fue 3.X, y cosas como esta no funcionaron. Mayormente usando MS SQL Server hoy en día. –

2

SELECT t1.columns distinta de la tabla T1
INNER JOIN tabla t2 EN t1.id < t2.id

En mi experiencia, MySQL ama esta técnica, que se remonta varias versiones.

+0

Probablemente debería ser SELECT DISTINCT t1.columns ... –

+0

Estoy seguro de que olvidó una DISTINCT allí. – LeppyR64

1

Otra técnica que no ve mencionado aquí es

SELECT * FROM table ORDER BY id DESC LIMIT 10000 OFFSET 1; 

Esto le dará los registros ordenados por descendiente Identificación excepto la primera, es decir, excepto el último en el orden original.
Tenga en cuenta que con este método solo tomará 10000 registros, sin embargo, este número puede ser tan alto como desee, pero no se puede omitir.
La ventaja de este método es que puede ordenar por lo que desee.
La desventaja es que le proporciona los registros ordenados del último al primero.
Finalmente él valores señalando que los otros métodos que aquí funciona bastante bien

Cuestiones relacionadas