Все еще пытаюсь найти простое решение для вас, но, как общее примечание, следует избегать использования CSV в столбце и вместо этого использовать отдельную таблицу или столбец массива.
Также вопрос (посколькуУ меня недостаточно репутации, чтобы комментировать ваш вопрос): есть ли ограничение на количество значений в поле домов?
ОБНОВЛЕНИЕ: я сейчас в растерянности.Я больше знаком с Postgres и Oracle, и мое лучшее решение использует функции массива.Очевидно, MySQL не поддерживает типы массивов из того, что я могу сказать.Без функций массива лучше всего использовать временную таблицу и разбивать строку, однако вам необходимо иметь оператор для каждого разбиения, поэтому вам нужно будет знать, сколько значений содержится в самом большом наборе записей, и если их сотнизначений в поле самого большого дома, это может занять много времени, чтобы написать весь этот код.
Если вы используете Postgres, вы можете достичь своего решения (без необходимости промежуточной транспонирования) с помощью:
SELECT * FROM (SELECT id, name AS guid FROM table_name
UNION
SELECT id, unnest(string_to_array(t.houses, ',')) AS guid FROM table_name t) u
ORDER BY id, guid;