我在想如何用 PHP 和 MySQL 进行配对,但我找不到。
例如,我们有一个 mysql 用户表,用户设置了一些配置文件,我们用百分比计算配置文件。
我们简单的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 的匹配。
所以我正在谈论这个,但我无法解决。