|
|
|
| Здравствуйте.
Столкунулся вот с такой проблемой.
Возможно ли сделать выборку с базы, если данные имеют такой вид:
id || membergroup
1 || 1,3
2 || 3
3 || 1,2,4
4 || 2,4
... и тд.
нужно выбрать. например, значение, у которых в membergroup есть 2.
Возможно ли средствами mysql это реализовать?
Спасибо. | |
|
|
|
|
|
|
|
для: Dez1
(03.01.2010 в 23:11)
| | лучше переделать базу | |
|
|
|
|
|
|
|
для: Valick
(03.01.2010 в 23:33)
| | Этот вариант исключен. потому что, это структура бд форума, которую категорически не рекомендуеться изменять.
также не вариант средставми php сделать выборку. потому что в базе больше 6к записей, что призведет до колосальных затрат ресурсов. | |
|
|
|
|
|
|
|
для: Dez1
(04.01.2010 в 00:46)
| | кем категорически не рекомендуется?
Можете использовать LIKE , но это Вас не спасет. | |
|
|
|
|
|
|
|
для: Valick
(04.01.2010 в 04:58)
| | Разработчиками vBulletin =)
Та нет, LIKE не поможет. | |
|
|
|
|
|
|
|
для: Dez1
(04.01.2010 в 14:17)
| | FIND_N_SET()
Хотя, соглашусь с Valick, кардинально поможет лишь изменение схемы БД. | |
|
|
|
|
|
|
|
для: Trianon
(04.01.2010 в 14:28)
| | Думаю регулярное выражение решает проблему.
select * from table where membergroup REGEXP '^2';
|
Спасибо всем за ответы! | |
|
|
|
|
|
|
|
для: Dez1
(04.01.2010 в 15:11)
| | отнюдь.
к примеру
Функция, которую я указал, может помочь в решении проблемы, поскольку именно для такого рода случаев и проектировалась.
Ожидать от нее колоссального быстродйствия, конечно, не приходится, так как таблица даже не в первой нормальной форме.
Но всяко это будет а) работающий вариант , и б) быстрее регулярок, даже правильных. | |
|
|
|
|
|
|
|
для: Trianon
(04.01.2010 в 15:33)
| | Прошу прощение. Не заметил сначала.
Да, дейтсвительно, работающий вариант.
Ну регулярку я как пример привел, просто нужно было правильно составить.
Но спасибо, эта функция то, что нужно.
и кстате, еще заметил, что в vbulletin именно эта функция применяеться. ) | |
|
|
|