За последние 24 часа нас посетили 63067 программистов и 1741 робот. Сейчас ищут 922 программиста ...

Сравнить число с перечнем чисел в ячейке БД

Тема в разделе "PHP и базы данных", создана пользователем voron121, 12 фев 2017.

  1. voron121

    voron121 Активный пользователь

    С нами с:
    18 ноя 2016
    Сообщения:
    29
    Симпатии:
    1
    Доброго времени суток. Прошу прощения за беспокойство, понимаю что вопрос может показаться глупым, но не могу понять как решить возникшую у меня проблему.

    И так , суть : есть ячейка в таблице Бд с типом TEXT в которой через запятую записаны некие ид (ид городов из серии чекбоксов, не суть). Имеет это следующий вид : 1,455,6888,9756, и так далее. Далее имеем ид города (его получаем на фронте сайта, тоже не суть. Суть здесь в том что ид 1). Допустим у нас ид города 455.

    И теперь мне нужно выбрать из таблицы записи где в ячейке с ид регионов есть ид полученного мною региона. Что то вроде :
    PHP:
    1. SELECT * FROM table WHERE regions = 455
    Но только мне не нужно сравнивать ячейку с одним значением а по сути сравнить множество значений в ячейке БД с одним значением ид города, который я получил.

    Когда то я делал подобное но в точности на оборот : я сравнивал 1 значение в ячейке БД с неким массивом полученных из формы данных. Там я использовал оператор IN и функцию implode() для того что бы массив привести в строку и вставить в оператор IN . Здесь же мне это решение не подходит т.к нужно узнать есть ли мой ИД во множестве Идишников в ячейке.

    Возможно запутанно получилось. Но вот примерно вот такая трабла . Прошу подсказать каким оператором или же как можно обработать запрос на выбор данных из таблицы БД согласно моим требованиям в условии
     
  2. t1grok

    t1grok Новичок

    С нами с:
    29 янв 2017
    Сообщения:
    119
    Симпатии:
    32
    LIKE в помощь. А вообще, неверная структура БД налицо
     
    denis01 нравится это.
  3. voron121

    voron121 Активный пользователь

    С нами с:
    18 ноя 2016
    Сообщения:
    29
    Симпатии:
    1
    LIKE - это вариант, но ведь если есть ид 12 и ид 112000 то LIKE выведет записи и к тому и к тому ид т.к он не конкретезирует запрос по сути.

    На счет не верной структуры БД - подскажите что именно не верно - буду исправляться )
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Одна ячейка - один айди. Чтобы написать подробнее нужно знать задачи, которые должна выполнять БД.
    А у нас в задаче сказано:
     
  5. voron121

    voron121 Активный пользователь

    С нами с:
    18 ноя 2016
    Сообщения:
    29
    Симпатии:
    1
    У меня серия опций для записи. Всего окала 10 групп и в каждой группе в среднем 7 опций. То есть мне в таком случае необходимо былоь бы создать минимум 70 ячеек в таблице и писать каждую опцию в отдельную ячейку (думал уже об этом). Однако в некоторых CMS видел что можно писать несколько значений в одну ячейку и потом с ней работать
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Это вообще дело хозяйское.
    @t1grok отметил, что это не правильно.
    Работать оно, может быть, и будет.
    Но не всё, что будет работать - правильно.
     
  7. t1grok

    t1grok Новичок

    С нами с:
    29 янв 2017
    Сообщения:
    119
    Симпатии:
    32
    А кто сказал, что будет легко. Накладывайте несколько различных лайков, в вашем случае их будет 4 штуки. Еще можно через регулярки сделать. Одно решение хлеще другого..