Ik zou sterk aanraden om normalize
uw gegevens zoals anderen hebben voorgesteld.
Op basis van je huidige ontwerp kun je FIND_IN_SET
om het gewenste resultaat te bereiken.
SELECT
M.id,
M.name,
COUNT(*) total
FROM members M
INNER JOIN videos V ON FIND_IN_SET(M.name,V.members) > 0
GROUP BY M.name
ORDER BY M.id
Als u deze query uitvoert op uw gegeven dataset, krijgt u de onderstaande output:
| id | name | total |
|----|-------|-------|
| 1 | Tom | 2 |
| 2 | Bob | 2 |
| 3 | Zack | 3 |
| 4 | Dan | 3 |
| 5 | Casey | 2 |
Een must om te lezen
Is het echt zo erg om een gescheiden lijst in een databasekolom op te slaan?
Meer
Dit is hoe je vidoes
tabel eruit zou zien als u uw gegevens normaliseert:
vidoes
id member_id