J'ai une table avec N lignes, et je veux sélectionner N-1 lignes.MySQL: Comment sélectionner toutes les lignes d'une table SAUF la dernière
Suggestions sur la façon de le faire dans une requête, si c'est possible ..?
J'ai une table avec N lignes, et je veux sélectionner N-1 lignes.MySQL: Comment sélectionner toutes les lignes d'une table SAUF la dernière
Suggestions sur la façon de le faire dans une requête, si c'est possible ..?
La dernière rangée a-t-elle l'ID le plus élevé? Si oui, je pense que cela fonctionnerait:
SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE)
MySQL ne permet subselects dans la version actuelle, à droite?
Cependant, dans la plupart des cas, il fonctionnerait probablement mieux si vous sélectionniez toutes les lignes et que vous filtriez ensuite les données indésirables dans votre application.
SELECT t1.columns Distinct de table t1
INNER JOIN t2 tableau t1.id < t2.id
Dans mon expérience, MySQL aime cette technique, remontant à plusieurs versions.
Probablement devrait être SELECT DISTINCT t1.columns ... –
Je suis sûr que vous avez oublié un DISTINCT là-bas. – LeppyR64
Une autre technique que je ne vois pas ici est énuméré
SELECT * FROM table ORDER BY id DESC LIMIT 10000 OFFSET 1;
Cela vous donnera les enregistrements ordonnés par descendant identifiant sauf la première, qui est, sauf le dernier dans l'ordre original.
Notez qu'avec cette méthode, ne prendra que 10000 enregistrements, cependant ce nombre peut être aussi élevé que vous le souhaitez mais ne peut pas être omis.
L'avantage de cette méthode est que vous pouvez commander par ce que vous voulez.
L'inconvénient est qu'il vous donne les enregistrements commandés du dernier au premier.
Enfin, il vaut bien noter que les autres méthodes fonctionne ici très bien
Une autre façon de faire pourrait être:
SELECT * FROM table WHERE ID <> LAST_INSERT_ID()
Référence: http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html
MySQL 4.1 a soutenu les sous-requêtes depuis plus de quatre ans! Bien que certaines sociétés d'hébergement utilisent encore MySQL 4.0, il manque cette fonctionnalité. –
Hé, je le pensais. Mais la dernière fois que j'ai utilisé MySQL, c'était 3.X, et des trucs comme ça ne marchaient pas. Principalement en utilisant MS SQL Server de nos jours. –