Ich würde dringend zur normalize
raten Ihre Daten wie von anderen vorgeschlagen.
Basierend auf Ihrem aktuellen Design können Sie FIND_IN_SET
um das gewünschte Ergebnis zu erzielen.
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
Wenn Sie diese Abfrage für Ihren angegebenen Datensatz ausführen, erhalten Sie eine Ausgabe wie unten:
| id | name | total |
|----|-------|-------|
| 1 | Tom | 2 |
| 2 | Bob | 2 |
| 3 | Zack | 3 |
| 4 | Dan | 3 |
| 5 | Casey | 2 |
Unbedingt lesen
Ist das Speichern einer Liste mit Trennzeichen in einer Datenbankspalte wirklich so schlecht?
Mehr
So werden Ihre vidoes
Tabelle würde so aussehen, wenn Sie Ihre Daten normalisieren:
vidoes
id member_id