Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сложный запрос с N количеством рег. выражений
 
 автор: forma   (30.06.2012 в 18:45)   письмо автору
 
 

Есть база данных с сообщениями. У каждого сообщения может быть от одной и более категорий(записывается id категории). Например таблица может выглядить так:
id_message | categories
1 | 1,3,4
2 | 6,7
3 | 5
4 | 7,8

Происходит поиск по таблице, приходит список категрий. Например: 2,5,6,9

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

Можно для каждой категории добавить условие с рег. выражением, вот так:
WHERE `categories` REGEXP '2' OR `categories` REGEXP '5' OR `categories` REGEXP '6' OR `categories` REGEXP '9'
(вместо чисел 2,5,6,9 рег. выражение)

А может есть лучше решение? Необязательно решение в самом запросе.

  Ответить  
 
 автор: confirm   (30.06.2012 в 18:55)   письмо автору
 
   для: forma   (30.06.2012 в 18:45)
 

Есть - выбросить "1,3,4" и т.п. из базы, так как это кроме неудобства и лишних хлопот ничего не дает. Вместо этого создать внешнюю таблицу связей категорий и сообщений им принадлежащих.

  Ответить  
 
 автор: forma   (30.06.2012 в 19:04)   письмо автору
 
   для: confirm   (30.06.2012 в 18:55)
 

Да, наверное так действительно удобнее. Ж)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования