N 行のテーブルがあり、N-1 行を選択したい。
可能であれば、1 つのクエリでこれを行う方法についての提案..?
最後の行に最高の ID がありますか? もしそうなら、私はこれがうまくいくと思います:
SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE)
MySQL は現在のバージョンでサブセレクトを許可していますよね?
ただし、ほとんどの場合、アプリケーションですべての行を選択して不要なデータを除外した方が、パフォーマンスが向上する可能性があります。
SELECT DISTINCT t1.columns FROM table t1
INNER JOIN table t2 ON t1.id < t2.id
私の経験では、MySQL はこの手法を気に入っており、いくつかのバージョンをさかのぼります。