Como posso usar o FIND_IN_SET em uma tabela JOINED?

Eu tenho 2 tabelas:

do utilizador: nomes de doadores de sangue registrados com seu tipo sanguíneo.sangue: contém tipos e compatibilidades sanguíneas. por exemplo: O sangue id 5 (A-) pode receber doações de sangue de 5 (A-) e 6 (O-).

Eu tenho que criar um formulário de pesquisa que recupere potenciais doadores de sangue. O formulário permite que o usuário procure por doadores específicos de tipo sanguíneo. Se eu procurar o tipo sanguíneo 5 (A-), a consulta deve retornar todos os usuários que possuem tipos sanguíneos 5 (A-) e 6 (O-), e a lista resultante deve exibir o nome e o tipo sanguíneo de cada usuário .

Eu tentei o seguinte:

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

Isso traz apenas outros usuários que têm o tipo sanguíneo exato como pesquisado, mas nem todos os tipos sanguíneos compatíveis.

Então, tentei essa outra consulta. Isso pesquisará todos os tipos de sangue compatíveis, mas os resultados também serão filtrados pelo tipo de sangue (os registros do tipo 6 do sangue também devem ser exibidos porque oreceive coluna de sangue id 5 contém5,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)

... mas, por algum motivo, não está exibindo as linhas corretas. Estou vendo alguns registros A +, AB +, A-, e deve haver apenas registros A- e O-.

Aqui estão as estruturas das tabelas emjsfiddle.

questionAnswers(1)

yourAnswerToTheQuestion