Доброго времени. Есть база, в ней таблица films, в ней для каждого фильма есть строка actors в которой записаны ID-актеров из таблицы actors Выглядит примерно так: Код (Text): caption FilmName actors 12, 265, 14, 345, 3810 У меня появилась задача указать для одного актера все фильмы в котороых он снимался. Т.Е. найти все записи в поле actors в значении которых встречается ID-актера. Все вроде бы просто, но получается так: ищу по полю actors [sql]SELECT * FROM films Where actors LIKE "%$id%"[/sql] , находятся записи в которых содержастя 12 и также такие как например 1240, 3012 и тп. оно и ясно из выражения %$id%... Подскажите, пожалуйста, как реализовать поиск по таблице?
Я как бы могу понять что мне не нужен лайк, я это так и указал. Так же мне не нужно и жесткое сравнение. Потому и прошу помощи, может кто сталкивался с подобной задачей.
Лучше было бы хранить в отдельной таблицы связи id_film, id_actor А здесь может помочь регулярное выражение.
А, понял. СТруктура неоптимальна, будет тормозить на большой базе. Правильней будет вынести связи в отдельную таблицу. А тут поможет FIND_IN_SET
Сейчас конструирую переход связей в отдельную таблицу, но для данной системы нашел выход по регулдярным выражениям, а именно: [sql]SELECT * FROM films Where actors REGEXP "[[:<:]]".$id."[[:>:]]" [/sql] Выводит качественные результаты. Но время выполнения еще не проверял.