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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Подсчитать ко-во записей, где есть совпадение

Сообщения:  [1-6] 

 
 автор: cheops   (05.04.2011 в 15:30)   письмо автору
 
   для: OLi   (05.04.2011 в 14:03)
 

Это позиционные проверки нужны, иначе можно нахватать 7-ок из других цифр, вроде 27... А в MySQL их вроде как нет...

PS А не проще преобразовать базу данных к нормальному виду, чтобы каждой цифре соответствовала отдельная строка (пусть даже в другой таблице)? И быстрее работать будет и SQL-запросы удобнее составлять.

  Ответить  
 
 автор: cheops   (05.04.2011 в 15:26)   письмо автору
 
   для: OLi   (05.04.2011 в 13:58)
 

Если использовать LIKE, то можно поступить так
SELECT COUNT(*) FROM `filials` 
WHERE podcat = 7 OR podcat LIKE '%,7,%' OR podcat LIKE '7,%' OR podcat LIKE '%,7';

  Ответить  
 
 автор: OLi   (05.04.2011 в 14:03)   письмо автору
 
   для: OLi   (05.04.2011 в 13:58)
 

Я думаю лучше использовать REGEXP ?! Как будет выглядеть регулярка для этой функции

  Ответить  
 
 автор: OLi   (05.04.2011 в 13:58)   письмо автору
 
   для: cheops   (05.04.2011 в 01:45)
 

Возвращает значение от 1 до ..., в зависимости от позиции строки str среди строк (подстрок) в строке strlist. Строки (подстроки) в strlist разделены ",". Возвращает 0, если str не найдена среди строк в strlist. Возвращает NULL, если один из аргументов NULL.
Не совсем подходит....может юзать LIKE?
Есть у этого оператора дополительные параметры которые бы указали различать запятые?

  Ответить  
 
 автор: cheops   (05.04.2011 в 01:45)   письмо автору
 
   для: OLi   (05.04.2011 в 01:14)
 

Можно начать отталкиваться от следующего запроса
SELECT COUNT(*) FROM `filials`
WHERE FIND_IN_SET(7, podcat);

  Ответить  
 
 автор: OLi   (05.04.2011 в 01:14)   письмо автору
 
 

Имею таблицу filials и в ней поле podcat в котором данные хранятся в виде 5 (одно число), либо 4,5,7,12 (как строка - несколько)
В другой таблице pod_cat имею:
id podcat title
1 7 Мебель
Т-е для выборки title по соответствию полей podcat...

Мне необходимо подсчитать кол-во записей, которые относятся к podcat = 7
Т-е выбрать из таблицы filials из поля podcat все соответствия для 7.....т-е если там 7 - не проблема выборку сделать, а если в поле запись 4,5,7,10 - ее тоже надо подсчитать, потому как в нее входит 7
Думаю понятно!

  Ответить  

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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