2012-07-03 4 views
-2

У меня есть таблица с именем dayofweek, в которой данные хранятся в следующем формате, разделенные запятой.Искать значение, разделенное запятыми, используя между пунктом

id friday  saturday  sunday  monday tuesday winsday 

    1 02:00,3:09 1:12,2:9  3:08,4:08 3:3,3:45 12:3,3:2 2:3,5:6,7:3,6:9 
    ... 
    ... 
    .... 

Теперь я хочу найти идентификатор на «пятнице», который доступен в «02:30». Проще говоря, я хочу, чтобы написать запрос, как это:

SELECT ID FROM dayofweek WHERE day='friday' AND time in 'commaseparatedfirstvalue' and 'comma separated second value'

Может кто-нибудь пожалуйста помочь?

+2

Вы можете сделать это с LIKE, или вы могли бы структуру базы данных должным образом. Я бы порекомендовал второй курс действий – podiluska

+2

Время даже не форматировано последовательно - наверняка «2: 9» должно быть «2:09». Должно ли «02:00» быть «2:00»? Как вы можете рассказать разницу между AM и PM? Также «Winsday» - правда? Нет колонки «четверг»? – Bridge

ответ

0

Боюсь, вам придется писать свои собственные SQL-функции, которые занимают временной диапазон ', например - 02: 00,3: 09', и вернут вам начало диапазона и конец диапазона, например, предположим, что они называются begin_range и end_range.
Вы SQL-запрос будет выглядеть следующим образом:

select id from dayofweek where '02:30' >= begin_range(friday) and '02:30' <= end_range(friday); 
Смежные вопросы