Как сказал @Cylindric, если вы можете изменить дизайн базы данных!
Создайте две таблицы, одну для предложений и одну для местоположения.
OFFERS (id, name)
LOCATIONS (offer_id, name)
Так (например) у вас есть (1, 'offer1')
в ПРЕДЛОЖЕНИЯХ и
(1, 'Bangalore'), (1, 'Mumbai') and (1, 'Chennai')
в местах.
Ваш запрос будет проще:
SELECT o.name, l.name FROM offers o
INNER JOIN locations l ON o.id = l.offer_id
Если честно, у вас должно быть три таблицы, чтобы избежать повторений локаций:
OFFERS (id, name)
LOCATIONS (id, name)
OFFERS_LOC (offer_id, loc_id)
У вас есть
(1, 'offer1')
в ПРЕДЛОЖЕНИЯХ,
(1, 'Bangalore'), (2, 'Mumbai') and (3, 'Chennai')
в местах и
(1, 1), (1, 2) and (1, 3)
в OFFERS_LOC.
Ваш запрос будет
SELECT o.name, l.name FROM offers o
INNER JOIN offers_loc ol ON o.id = ol.offer_id
INNER JOIN locations l ON ol.loc_id = l.id