Подпрограмма «получить элемент по идентификатору» никогда не должна возвращать более одного объекта, потому что это не имеет абсолютно никакого лингвистического смысла.
Процедура "получить предметы по идентификаторам"? Конечно, если у вас есть достойный вариант использования, и он будет использоваться достаточно часто.
Но в большинстве случаев, да, вместо процедуры, возвращающей несколько элементов по идентификатору, вам нужна процедура, которая возвращает элементы на основе параметров фильтрации, соответствующих приложению (например, "дать мне все транзакции с 8 января на сумму более 10 долларов США") ).
Кстати, иногда диапазон идентификаторов (например, все от 5 до 10) - это совершенно правильный набор фильтров!
Кстати, это не обязательно проблема MySQL или SQL в целом. Практически любой вид API запросов к наборам данных на любом языке представит эти же самые вопросы проектирования, и их ответы обычно будут очень похожи.