ФорумРазработкаБазы данных → выборка по регулярному выражению

выборка по регулярному выражению

  • terkin

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 10 ноября 2010 г. 6:35

    Необходимо выбрать все записи где в столбце category есть скажем число 3 (не 33, не 3, а именно 3), формат данных в category 12,3,55,67,33, помогите плиз сделать правильно выборку, или может лучше(быстрее) как-то без регулярки.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 10 ноября 2010 г. 6:39, спустя 3 минуты 46 секунд

    REGEXP
  • terkin

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 10 ноября 2010 г. 7:13, спустя 34 минуты 41 секунду

    Ну то что regexp это понятно, а вот саму регулярку уже подсказали

    '(^|,)3(,|$)'
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 10 ноября 2010 г. 7:15, спустя 1 минуту 16 секунд

    \bчисло\b
    Высокоуровневое абстрактное говно
  • AlexB

    Сообщения: 4292 Репутация: N Группа: в ухо

    Spritz 10 ноября 2010 г. 7:52, спустя 37 минут 39 секунд


    формат данных в category 12,3,55,67,33
    Очередная криво спроектированная база, решение - перепроектировать базу. ))))

    ЗЫ. Кстати, такой формат хранения я тоже использую, но только как средство денормализации дополнительно к таблице связок.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 10 ноября 2010 г. 9:14, спустя 1 час 21 минуту 30 секунд

    Кстати, как правильней сделать?
    Вот допустим у меня есть продукт, и список рекомендуемых к нему(это условность ничего общего с интернет магазином).

    Мне нужно доставать из БД продукт и список ID (только ID) рекомендуемых к нему.

    можно сделать табличку доп |productID|recomendID|
    А можно в продукт добавить ячейку recomendListID и перечислить ID через запятую.
    получать, редактировать и обратно запихивать через explode, implode.
  • AlexB

    Сообщения: 4292 Репутация: N Группа: в ухо

    Spritz 10 ноября 2010 г. 10:15, спустя 1 час 44 секунды


    А можно в продукт добавить ячейку recomendListID и перечислить ID через запятую.
    получать, редактировать и обратно запихивать через explode, implode.
    Я же уже сказал - это допустимо только как вспомогательное средство при необходимости, но табличка связок должна быть полюбому.
  • Sinkler

    Сообщения: 7941 Репутация: N Группа: в ухо

    Spritz 10 ноября 2010 г. 10:22, спустя 7 минут 14 секунд

    табличка связок должна быть полюбому

    ага, тут мэни-ту-мэни связь
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 10 ноября 2010 г. 14:06, спустя 3 часа 44 минуты 22 секунды

    Нет, ребята, я не гордый
    Не загадывая вдаль
    Так скажу: "Зачем мне орден?
    Я согласен на медаль"
  • }/{EHR

    Сообщения: 734 Репутация: N Группа: Адекваты

    Spritz 10 ноября 2010 г. 15:54, спустя 1 час 48 минут 9 секунд

    не 3, а именно 3

  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 11 ноября 2010 г. 1:06, спустя 9 часов 11 минут 20 секунд

    Мне когда побыстрому понадобились поисковые теги, я сделал так: хранил в текстовом поле теги в виде ',альфа,бета,гама,сигма,' (запятые нужны с обоих концов) и тупо искал LIKE '%,бета,%'. Регулярки для такой задачи не нужны, хотя можно, но незачем. Конечно это не катит для больших объемов, но работает.
    Спустя 142 сек.
    p.s. "большие объемы" это миллионы записей. для нескольких тысяч полный перебор по LIKE никого не напряжет.
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!