我在想如何用PHP和MySQL进行匹配,但我找不到。
例如,我们有一个mysql用户表,用户设置一些设置他们的配置文件,我们macth配置文件的百分比。
我们简单的mysql表:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL DEFAULT '',
`password` varchar(255) NOT NULL DEFAULT '',
`email` varchar(255) NOT NULL DEFAULT '',
`gender` enum('M','F') NOT NULL DEFAULT 'M',
`answer1` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer2` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer3` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer4` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer5` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer6` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer7` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer8` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer9` enum('Y','N') NOT NULL DEFAULT 'Y',
`answer10` enum('Y','N') NOT NULL DEFAULT 'Y',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`),
KEY `gender` (`gender`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;
我们的行:
INSERT INTO `users` (`id`, `username`, `password`, `email`, `gender`, `answer1`, `answer2`, `answer3`, `answer4`, `answer5`, `answer6`, `answer7`, `answer8`, `answer9`, `answer10`) VALUES
(1, 'maleuser1', '123456', 'male1@male1.com', 'M', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'Y', 'N', 'Y'),
(2, 'maleuser2', '123456', 'male2@male2.com', 'M', 'Y', 'Y', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y'),
(3, 'femaleuser1', '123456', 'female1@female1.com', 'F', 'Y', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'Y'),
(4, 'femaleuser2', '123456', 'female2@female2.com', 'F', 'Y', 'Y', 'Y', 'N', 'Y', 'N', 'Y', 'N', 'N', 'Y');
你可以看到我们有2名男性和2名女性用户(通常他们将是数千名),我想搜索男性档案中最匹配的女性档案与百分比。
例如,我们将查询:
select username, blabla as percentage
from users where gender = 'F'
and ("here best matchmaking codes")
and we show users; femaleuser1 and you matching %85.
我们只会显示大于%70的结果。
所以我正在谈论但我无法解决。
答案 0 :(得分:0)
基本上你无法将苹果与橙子进行比较。您可以寻找任务并最大化工人和工作。在您的问题描述中,它将最大化女性和男性对。寻找匈牙利算法或edmonds v blossom算法。