To je určitě možné s MySQL, ale myslím, že na to jdeš nešikovným způsobem. Začal bych strukturováním tabulek takto:
TABLE Users ( userId, username, location )
TABLE Interests( interestId, hobby )
TABLE UserInterests( userId, interestId, level )
Když uživatel přidá zájem, pokud ještě nebyl přidán, přidáte jej do Interests
tabulky a poté ji přidejte do UserInterests
stůl. Chcete-li vyhledat další blízké lidi s podobnými zájmy, můžete jednoduše zadat dotaz na UserInterests
tabulka pro ostatní lidi, kteří mají podobné zájmy, která už pro vás má všechny tyto informace:
SELECT DISTINCT userId
FROM UserInterests
WHERE interestId IN (
SELECT interestId
FROM UserInterests
WHERE userId = $JoesID
)
Pravděpodobně to půjde udělat elegantnějším způsobem bez dílčích dotazů, ale teď mě to napadlo.