2008-11-24 5 views

ответ

15

Имеет ли последний ряд самый высокий идентификатор? Если это так, я думаю, что это сработает:

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

MySQL разрешает подзапросы в текущей версии, не так ли?

Однако в большинстве случаев он, вероятно, будет работать лучше, если вы выберете все строки и затем отфильтровыте ненужные данные в своем приложении.

+0

MySQL 4.1 поддерживает подзапросы в течение более четырех лет! Хотя, по общему признанию, некоторые хостинговые компании по-прежнему используют MySQL 4.0, в котором отсутствует эта функция. – 2008-11-24 22:17:01

+0

Хех, я так и думал. Но в последний раз, когда я использовал MySQL, это было 3.X, и вроде бы это не сработало. В основном используется MS SQL Server в настоящее время. – 2008-11-24 22:40:15

2

SELECT DISTINCT FROM t1.columns таблицы t1
INNER JOIN таблицы t2 ON t1.id < t2.id

По моему опыту, MySQL любит эту технику, восходящая несколько версий.

1

Другой метод, который я не вижу в список здесь

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

Это даст вам запись заказанного ид потомок, за исключением первого, то есть, за исключением последнего в первоначальном порядке.
Обратите внимание, что с помощью этого метода вы получите только 10000 записей, однако это число может быть как можно большим, но не может быть опущено.
Преимущество этого метода заключается в том, что вы можете заказать все, что захотите.
Недостатком является то, что он дает вам записи, заказанные от последнего до первого.
Наконец Вортс отметить, что другие методы здесь работает достаточно хорошо

Смежные вопросы