Задавайте вопросы, мы ответим
Вы не зашли.
Добрый вечер.
Подскажите, пожалуйста, есть ли в MySQL возможность ограничить результат по данным к-л колонки, поясню на примере:
Отредактированно FiMko (24.03.2012 22:22:58)
Неактивен
Неактивен
Наваял что-то вроде:
Отредактированно FiMko (24.03.2012 23:19:17)
Неактивен
Похоже на правду, только замените
FROM table1
на FROM (select * from table1 order by id1) t
Неактивен
deadka написал:
Похоже на правду, только замените
FROM table1
на FROM (select * from table1 order by id1) t
Спасибо, не учел. Однако это в корне ломает весь замысел: идея была ограничить выборку, взяв лишь по две записи для каждого id1. Что же получается теперь: выбираем все данные таблицы(!) и лишь потом срезаем лишнее. Экономим только на трафике.
---
Полезная ссылка: How to number rows in MySQL
Отредактированно FiMko (25.03.2012 13:20:21)
Неактивен
Внутри MySQL эта операция будет на порядок быстрее, чем в PHP.
Неактивен
rgbeast написал:
Внутри MySQL эта операция будет на порядок быстрее, чем в PHP.
Ок, спасибо, тогда оставляю как конечный вариант.
Неактивен
FiMko написал:
deadka написал:
Похоже на правду, только замените
FROM table1
на FROM (select * from table1 order by id1) tСпасибо, не учел. Однако это в корне ломает весь замысел: идея была ограничить выборку, взяв лишь по две записи для каждого id1. Что же получается теперь: выбираем все данные таблицы(!) и лишь потом срезаем лишнее. Экономим только на трафике.
Можно и по-другому - либо сделать накрывающий индекс на поля id1 и id2, либо, если тип таблицы MyISAM и Вы точно знаете, что id1 только возрастает, то можно и не сортировать дополнительно. В приведенной статье на webew.ru об это подробней сказано.
Неактивен