Как выбрать последние 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