Как выбрать последние 10 строк таблицы SQL, которые не имеют поля идентификатора?

У меня есть таблица MySQL с 25000 строк.

Это импортированный CSV файл, поэтому я хочу посмотреть последние десять строк, чтобы убедиться, что он импортировал все.

Однако, поскольку нет идентификатора столбца, я не могу сказать:

SELECT * FROM big_table ORDER BY id DESC

Какой SQL-оператор покажет мне последние 10 строк этой таблицы?

Структура таблицы такова:

columns are: A, B, C, D, ..., AA, AB, AC, ... (like Excel)
all fields are of type TEXT

Ответ 1

В таблицах SQL нет неявного упорядочения, порядок должен поступать из данных. Возможно, вы должны добавить поле в свою таблицу (например, счетчик int) и повторно импортировать данные.

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

РЕДАКТИРОВАТЬ: вы говорите

... чтобы убедиться, что он импортировал все.

Что случилось с использованием количества строк?

Ответ 2

Все ответы здесь лучше, но на всякий случай... Существует способ получить 10 последних добавленных записей. (ты это ненадежный:)) все еще вы можете сделать что-то вроде

SELECT * FROM table LIMIT 10 OFFSET N-10

N - должно быть общее количество строк в таблице (таблица SELECT count (*) FROM). Вы можете поместить его в один запрос, используя подготовленные запросы, но я не буду в этом разбираться.

Ответ 3

Выберите из таблицы, используйте ORDER BY __ DESC для сортировки в обратном порядке, а затем ограничьте результаты до 10.

SELECT * FROM big_table ORDER BY A DESC LIMIT 10

Ответ 4

Если вы выполняете операцию LOAD DATA INFILE 'myfile.csv', самый простой способ увидеть, были ли все строки включены, - проверить show warnings();. Если вы загружаете данные в пустую или временную таблицу, вы также можете проверить количество строки, которые он имеет после вставки.

Ответ 5

SELECT * FROM big_table ORDER BY A DESC LIMIT 10

Ответ 6

выполнение запроса count (*) для больших данных является дорогостоящим. я думаю, используя "SELECT * FROM table ORDER BY id DESC LIMIT n", где n - количество строк на странице лучше и легче

Ответ 7

Низкотехнологичный подход: выполнение этого с помощью SQL может быть чрезмерным. В соответствии с вашим вопросом вам просто нужно сделать однократную проверку импорта.

Почему бы просто не сделать: SELECT * FROM ImportTable

а затем прокрутите до нижней части сетки результатов и визуально проверьте "последние" несколько строк.

Ответ 8

Если вы знаете, сколько строк ожидать, я бы создал отдельную временную таблицу в вашей базе данных ожидаемой структуры, добавив в нее, а затем проверил счет... Как только вы с этим справитесь, вы можете массировать эту перед добавлением его в вашу итоговую производственную таблицу.

Ответ 9

вы можете с кодом выбрать 10 строк из конца таблицы. выберите * from (SELECT * FROM table1 order by id desc LIMIT 10), как table2 order by id "

Ответ 10

Вы можете использовать опцию "ORDER BY DESC", а затем вернуть ее в исходном порядке:

(SELECT * FROM tablename ORDER BY id DESC LIMIT 10) ORDER BY id;

Ответ 11

Если вы хотите получить последние 10 записей из sql, используйте LIMIT. Предположим, что база данных содержит 20 записей. Используйте приведенный ниже запрос

SELECT * FROM TABLE_NAME LIMIT 10,20;

где 10,20 - значение смещения. Где 10 представляют начальный предел, а 20 - конечный предел.

i.e 20 -10 = 10 записей

Ответ 12

Это можно сделать с помощью функции limit, это может показаться не новым, но я добавил что-то. Код должен идти:

SELECT * FROM table_name LIMIT 100,10;

для вышеуказанного случая предположим, что у вас есть 110 строк из таблицы, и вы хотите выбрать последнюю десятку, 100 - это строка, которую вы хотите начать печатать (если вы хотите распечатать), а десять показывают, сколько строк вы хочу выбрать из таблицы. Для более аккуратного способа вы можете начать с выбора всех строк, которые вы хотите распечатать, а затем вы захватите последний идентификатор строки, если у вас есть столбец идентификатора (я рекомендую вам поместить его), а затем вычесть десять из последнего идентификационного номера, и это будет где вы хотите начать, это заставит вашу программу функционировать автономно и для любого количества строк, но если вы напишете значение напрямую, я думаю, вам придется менять код каждый раз, когда данные будут вставлены в вашу таблицу. Я думаю, что это helps.Pax et Bonum.

Ответ 13

Если вы не пробовали следующую команду

SELECT TOP 10 * FROM big_table ORDER BY id DESC;

Я вижу, что он работает, когда я выполняю команду

SELECT TOP 10 * FROM Customers ORDER BY CustomerId DESC;

в командном окне Попробуйте сами https://www.w3schools.com/sql/sql_func_last.asp