¿Cómo puedo usar FIND_IN_SET dentro de una tabla JOINED?

Tengo 2 mesas:

usuario: nombres de donantes de sangre registrados con su tipo de sangre.sangre: contiene tipos de sangre y compatibilidades sanguíneas. por ejemplo: Blood id 5 (A-) puede recibir donaciones de sangre de 5 (A-) y 6 (O-).

Tengo que crear un formulario de búsqueda que recupere a los posibles donantes de sangre. El formulario permite al usuario buscar donantes de tipo sanguíneo específicos. Si busco el tipo de sangre 5 (A-), la consulta debería devolver todos los usuarios que tienen 5 (A-) y 6 (O-) tipos de sangre, y la lista resultante debe mostrar tanto el nombre como el tipo de sangre de cada usuario .

He intentado lo siguiente:

SELECT user.name, blood.name AS blood FROM user JOIN blood ON blood.id_blood = user.id_blood WHERE user.id_blood = 5

Esto solo atrae a otros usuarios que tienen el tipo de sangre exacto según lo buscado, pero no todos los tipos de sangre compatibles.

Entonces, probé esta otra consulta. Esto buscará todos los tipos de sangre compatibles, pero los resultados también se filtran por el tipo de sangre (los registros del tipo de sangre 6 también deben mostrarse porquereceive columna de sangre id 5 contiene5,6.)

SELECT user.name AS name, blood.name AS blood FROM user JOIN blood ON blood.id_blood = user.id_blood WHERE FIND_IN_SET(5, blood.receive)

... pero por alguna razón no muestra las filas correctas. Estoy viendo algunos registros A +, AB +, A-, y solo debería haber registros A- y O-.

Aquí están las estructuras de tablas enjsfiddle.