В таблице хранится строка вида '1,2,10,12,30'
. Здесь прописываются группы пользователя. Как проверить подходит ли данная группа этому пользователю? Например группа 1 должна подходить для '1,2,11
' но не для '11,21'
, поэтому LIKE
не подходит. Какие еще есть варианты? 11 IN(uedb_specializations)
работает,только если строка начинается с данного числа.
Самое правильное решение - завести таблицу `groups' и там хранить все группы отдельно. Тогда решение становится элементарным.
Неправильное решение обрамить строку запятыми и использовать LIKE
SELECT * FROM mytable WHERE CONCAT(',', groups, ',') LIKE '%,1,%'
Это будет работать медленно и печально. Заведите дополнительную таблицу USER_GROUPS
. В ней должны быть колонки
ID | ID_USER | ID_GROUP
Потом посадите на нее уникальный индекс по полям ID_USER, ID_GROUP и все у вас будет шикарно работать.
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть запрос выводящий все заказыВ таблице teh_otdel есть 6 отделов, и сейчас они все выводятся
В БД (в 5-ти таблицах одновременно, суммарно примерно 20000 строк) осуществляется живой поиск:
В базе хранится дата и время в виде 2012-09-25 12:31:130 Правильно я понимаю, что на самом деле содержимое просто так отображается, но хранится в формате...