Это ужасно.Не делай этого.Но если вы должны:
DROP TABLE terrible_idea;
CREATE TABLE terrible_idea
(id SERIAL PRIMARY KEY
,days_id VARCHAR(255) NOT NULL
);
INSERT INTO terrible_idea VALUES
(1,'2,3,5'),
(2,'1,3,7'),
(3,'1'),
(4,'2');
CREATE TABLE hacky_solution
(i SERIAL PRIMARY KEY);
INSERT INTO hacky_solution VALUES (1),(2),(3),(4),(5),(6),(7);
SELECT id, STR_TO_DATE(FIND_IN_SET(y.i,x.days_id),'%W')m FROM terrible_idea x,hacky_solution y;
SELECT id
, SUBSTRING_INDEX(SUBSTRING_INDEX('Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday'
,','
,FIND_IN_SET(y.i,CONCAT(',',x.days_id))
),',',-1)m
FROM terrible_idea x,hacky_solution y
HAVING m <> '';
SELECT id
, SUBSTRING_INDEX(SUBSTRING_INDEX('Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday'
,','
,FIND_IN_SET(y.i,CONCAT(',',x.days_id))
),',',-1)m
FROM terrible_idea x,hacky_solution y
HAVING m <> '';
+----+-----------+
| id | m |
+----+-----------+
| 2 | Tuesday |
| 3 | Tuesday |
| 1 | Tuesday |
| 4 | Tuesday |
| 1 | Wednesday |
| 2 | Wednesday |
| 1 | Thursday |
| 2 | Thursday |
+----+-----------+