Речь идет о вопросе SQL, заданном в интервью

В таблице 201 запись. Вы должны показать только номер записи 101 при сортировке по набору одного поля или набору полей, которые однозначно определяют одну запись. Пожалуйста, предложите мне правильный ответ, а также объясните свой ответ.

Каков порядок? Без порядка 101-я строка не имеет смысла, поскольку таблицы по своей сути не отсортированы.

HoneyBadger 30.01.2019 11:57

Объясните свой вопрос, пожалуйста. Какую базу данных вы используете (например, MySQL, Oracle, SQL Server)? Что вы уже пробовали?

Tim Biegeleisen 30.01.2019 11:58

@honeybadger готово. Попытайтесь понять мой вопрос. Спасибо

Prashant Shelake 30.01.2019 12:05

@Tim Biegeleisen готово. Попытайтесь понять мой вопрос. Спасибо

Prashant Shelake 30.01.2019 12:06

Пожалуйста, включите больше информации. Сортируется ли id? Или по другой колонке?

Tony 30.01.2019 12:15

Что такое "отсортированная таблица"? Я никогда не слышал о таком в любой базе данных.

Gordon Linoff 30.01.2019 12:47

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

a_horse_with_no_name 30.01.2019 12:51

Вопрос, вероятно, читался как 101-я строка, отсортированная по некоторым критериям. В этом случае ответ будет LIMIT 0, 101.

Salman A 30.01.2019 12:54

Я согласен с предыдущими комментариями о том, что логика SQL не учитывает порядок в таблицах, поэтому концепция «отсортированной таблицы» неверна. В любом случае, на вопрос, который они задали, они ссылаются на таблицу, когда она отображается на экране, поэтому очень важно, чтобы они указывали поле, которое вы хотите отсортировать, поскольку разные запуски одного и того же запроса могут иметь разный порядок. Если вы укажете предложение ORDER BY с уникальным полем или комбинацией, вы всегда получите один и тот же порядок.

Angel M. 30.01.2019 12:55
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
2
9
88
3

Ответы 3

привет, вы должны указать идентификационный номер, например

SELECT name 
FROM table 
WHERE id=101   -- Assume if you want to find id of 101 from 201 records in a table"

Вы уверены, что? Что делать, если идентификаторы отсутствуют или не были назначены в порядке возрастания?

Nico Haase 30.01.2019 12:13

честно говоря, учитывая отсутствие информации у ОП, это такой же хороший ответ, как и любой другой.

iainc 30.01.2019 12:25

не имеет значения, если идентификаторы не назначены или не в порядке Этого можно добиться с помощью функции T-SQL ROW_NUMBER (Transact-SQL).

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

Какое отношение к вопросу?

HoneyBadger 30.01.2019 14:04

Я не эксперт в MySQL, но приведенный ниже запрос должен показать вам именно то, что вам нужно, используя LIMIT:

SELECT * 
FROM <YourTable>
ORDER BY <OrderField>
LIMIT 1 OFFSET 100

Предельная оговорка состоит из двух частей:

  LIMIT <row_count> OFFSET <offset>

[row_count]: сколько строк вы хотите показать

[смещение]: сколько строк вы хотите игнорировать, прежде чем показывать данные

Не забывайте, что нужно указать имя таблицы и поле, где вы хотите упорядочить строки. Во-первых, система отсортирует и покажет [row_count], игнорируя количество, указанное в [offset].

Другие вопросы по теме