Не знаете, как лучше всего это сказать, поэтому, пожалуйста, несите меня. Моя таблица (упрощенный) выглядит следующим образом:mySQL выбирает строки из одной таблицы для каждого user_id, близкие по метке времени
id
- Integer - автоматическое приращениеuser_id
- Integertimestamp
- DATETIME
Что мне нужно, это возможность запросить эту таблицу и выберите все записи, где столбцы timestamp
находятся в пределах предопределенного временного диапазона (потенциально произвольный, но позволяет говорить 10 минут) для каждого user_id
. Так, например, я хотел бы знать, есть ли запись для гипотезы hetical user_id
5 на «2011-01-29 03:00:00», а затем на «2011-01-29 03:02:00», но нет, если пользователь искал один раз на «2011-01-29 03:00: 00 », а затем в« 2011-01-29 05:00:00 ». Это также потребовало бы захвата случаев, когда пользователь будет искать более двух раз, каждый в пределах временного диапазона предыдущего.
Для фона это таблица поиска по сайту, и я хотел бы знать все экземпляры, в которых пользователь что-то ищет, а затем снова ищет (по-видимому, потому, что их предыдущий поиск не обеспечивал ожидаемых результатов).
Я знаю, что это, вероятно, проще, чем я это делаю, но я не могу понять это. При необходимости я могу уточнить или предоставить дополнительную информацию. Благодаря!
EDIT: Я заинтересован в поиске возвращающей результаты для всех пользователей в таблице, а не только пользователь # 5, а также для поиска без ввода фактического времени. Временная метка не должна быть чем-то, что вводится вручную, но вместо этого должно находить строки каждому пользователю, находящимся в пределах 10 минут друг от друга.
Это было очень полезно, однако для предотвращения совпадения в той же строке мне нужно было добавить 'AND t1.id! = T2.id 'к запросу. Благодаря! – William