#php #mysql #sql
Вопрос:
У меня есть таблица «merchant_slots», и я хочу проверить, собирается ли какой-либо пользователь вставить существующий временной интервал или нет, означает, что пользователь не должен вводить существующий временной интервал (не должен существовать между предыдущими «start_time» и «end_time») Так как же я могу проверить ? Вот моя таблица «merchant_slots»
id day merchantId start_time end_time
1 1 1 09:00 10:00
2 2 1 12:00 14:00
3 3 1 18:00 20:00
Я попытался использовать следующий код, но он не работает
SELECT *
FROM merchant_slots
WHERE '08:00' > start_time AND end_time < '12:00'
Комментарии:
1. Для проверки перекрывающихся диапазонов времени сравните start1 с end2 и start2 с end1. Если начало меньше конца в каждой паре, то диапазоны перекрываются.
2. @Akina: можете ли вы написать запрос, чтобы я мог проверить и реализовать его на своей стороне
3. ’08:00′ < время окончания amp;amp; ’12:00′ > время начала
4. @Erik: Вы можете написать «точный» запрос
5. Какую часть этой концепции вы не понимаете? Я бы предпочел помочь вам в этом, чтобы вы действительно чему-то научились.
Ответ №1:
Я предполагаю, что вы хотите исключить любое перекрытие с существующими строками. Если это так, вы можете найти совпадения, используя:
SELECT *
FROM merchant_slots
WHERE end_time > '08:00' AND start_time AND < '12:00'
Если это не возвращает строк, то временной интервал вообще не используется.