|
|
|
|
|
для: OLi
(05.04.2011 в 14:03)
| | Это позиционные проверки нужны, иначе можно нахватать 7-ок из других цифр, вроде 27... А в MySQL их вроде как нет...
PS А не проще преобразовать базу данных к нормальному виду, чтобы каждой цифре соответствовала отдельная строка (пусть даже в другой таблице)? И быстрее работать будет и SQL-запросы удобнее составлять. | |
|
|
|
|
|
|
|
для: 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 в 13:58)
| | Я думаю лучше использовать REGEXP ?! Как будет выглядеть регулярка для этой функции | |
|
|
|
|
|
|
|
для: cheops
(05.04.2011 в 01:45)
| | Возвращает значение от 1 до ..., в зависимости от позиции строки str среди строк (подстрок) в строке strlist. Строки (подстроки) в strlist разделены ",". Возвращает 0, если str не найдена среди строк в strlist. Возвращает NULL, если один из аргументов NULL.
Не совсем подходит....может юзать LIKE?
Есть у этого оператора дополительные параметры которые бы указали различать запятые? | |
|
|
|
|
|
|
|
для: OLi
(05.04.2011 в 01:14)
| | Можно начать отталкиваться от следующего запроса
SELECT COUNT(*) FROM `filials`
WHERE FIND_IN_SET(7, podcat);
|
| |
|
|
|
|
|
|
| Имею таблицу 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
Думаю понятно! | |
|
|
|
|