Я хочу получить две строки из моей таблицы в базе данных MySQL. эти две строки должны быть первой и последней после того, как я их приказал. Для достижения этой цели я сделал два querys, эти два:MySQL Выберите эффективную первую и последнюю строку
SELECT dateBegin, dateTimeBegin FROM worktime ORDER BY dateTimeBegin ASC LIMIT 1;";
SELECT dateBegin, dateTimeBegin FROM worktime ORDER BY dateTimeBegin DESC LIMIT 1;";
Я решил не получить весь набор и выбрать первые и последние в PHP, чтобы избежать, возможно, очень больших массивов. Моя проблема в том, что у меня есть два запроса, и я действительно не знаю, насколько это эффективно. Я хотел объединить их, например, с UNION, но тогда мне все равно пришлось бы заказать несортированный список дважды, который я также хочу избежать, потому что вторая сортировка делает то же самое, что и первая
Я хотел был бы заказать заказ а затем выберите первое и последнее значение этого упорядоченного списка, но я не знаю более эффективного способа, чем тот, у которого два запроса. Я знаю, что преимущество в производительности не будет огромным, но тем не менее я знаю, что списки растут, и по мере того как они становятся все больше и больше, и я выполняю эту часть для некоторых таблиц, мне нужен наиболее эффективный способ сделать это. Я нашел пару подобных тем, но никто из них не затронул этот конкретный вопрос.
Любая помощь очень ценится.
Почему не что-то вроде 'select datebegin, max (datetimebegin), min (datetimebegin) ...'? –
Я читал что-то вроде этого, но не мог понять, как именно работа. Почему я не сделал этого, я не уверен, что они сортируются дважды или нет? – JRsz
не было бы сортировки вообще. вы получите наибольшее/наименьшее значение datetimebegins, а также первое задание datebegin. –