Я храню реляционные элементы в полях в виде идентификаторов, разделенных запятыми, например:
,4,12,8,16,198,
Причиной начальных и конечных запятых является поиск с помощью LIKE '%,id,%'
Я пытаюсь написать функцию начальной загрузки для извлечения всех этих элементов на основе идентификатора в порядке идентификаторов.Мой вопрос заключается в том, что является наиболее эффективным способом получения этих строк?Варианты, о которых я подумал:
- Разнесение в массив, цикл по массиву и выполнение отдельных запросов на выборку (слишком много запросов?)
- Один выбор с использованием IN () (я надеваюНе думаете, что это сохранит порядок?)
- Выберите все элементы в связанной таблице и затем выберите из этого массива на основе идентификаторов (преимущество может заключаться в наличии только одного запроса?)
Возможно, стоит упомянуть, что я использую PDO, поэтому я могу подготовить операторы один раз, а затем выполнить их несколько раз для разных идентификаторов ... хотя я не знаю, насколько это влияет на производительность.
Любая помощь будетс благодарностью!
Спасибо.